javascriptのletとvarとconstキーワードの違いを知る


1.宣言後の値なし、表現は同じです。

//    
'use strict';

(function() {
 var varTest;
 let letTest;
 console.log(varTest); //  undefined
 console.log(letTest); //  undefined
}());
2.未宣言の変数を使うと、表現が違ってきます。

//    
(function() {
 console.log(varTest); //  undefined(              )
 console.log(letTest); //    :ReferenceError: letTest is not defined

 var varTest = 'test var OK.';
 let letTest = 'test let OK.';
}());
3.同じ変数を繰り返し宣言する場合、表現が異なります。

//    
'use strict';
(function() {
 var varTest = 'test var OK.';
 let letTest = 'test let OK.';
var varTest = 'varTest changed.';
 let letTest = 'letTest changed.'; //    :SyntaxError: Identifier 'letTest' has already been declared
 console.log(varTest); //  varTest changed.(        letTest           )
 console.log(letTest);
}());


4.変数の作用範囲、表現が異なる

//    
'use strict';
(function() {
 var varTest = 'test var OK.';
 let letTest = 'test let OK.';
 {
 var varTest = 'varTest changed.';
 let letTest = 'letTest changed.';
 }
 console.log(varTest); //  "varTest changed.",  "{}"    varTest       letTest  
 console.log(letTest); //  "test let OK.",  "{}"    letTest    letTest       
}());


5.constで定義されている変数は変更できず、初期化が必要です。

//    
const b = 2;//  
// const b;//  ,      
console.log('   const  b:' + b);//    
// b = 5;
// console.log('     const  b:' + b);//     
6.var定義の変数は変更できます。初期化しないとundefinedが出力されます。エラーが発生しません。

var a = 1;
// var a;//    
console.log('   var  a:' + a);//    a=1
function change(){
a = 4;
console.log('   var  a:' + a);//    a=4
} 
change();
console.log('     var  a        :' + a);//    a=4
7.letはブロックレベルのスコープで、関数内部でletを使用して定義した後、関数外部に影響がありません。

let c = 3;
console.log('   let  c:' + c);//  c=3
function change(){
let c = 6;
console.log('   let  c:' + c);//  c=6
} 
change();
console.log('     let  c          :' + c);//  c=3
勉強はこれで終わります。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。