1.使用let命令,會建立一個塊做用域指針
{ // {}包圍的代碼塊就是塊做用域。 for (let i=1; i<3; i++) { console.log(i); // 1 2 undefined } }
2.let聲明的變量只在塊做用域內有效code
{ for (let i=1; i<3; i++) { console.log(i); } // ES6默認開啓嚴格模式,引用未聲明的變量會報引用錯誤 console.log(i); // Uncaught ReferenceError: i is not defined }
3.同個做用域裏,使用let不能重複聲明變量對象
{ // 使用let不能重複聲明變量 let a = 1; let a = 2; // Uncaught SyntaxError: Identifier 'a' has already been declared }
1.使用const聲明一個常量作用域
{ const PI = 3.145926; }
2.使用const聲明的常量不能被修改it
{ const PI = 3.145926; PI = 6; // Uncaught TypeError: Assignment to constant variable. }
3.使用const聲明常量時就要賦值io
{ const PI; // Uncaught SyntaxError: Missing initializer in const declaration PI = 3.145926; }
4.使用const聲明一個引用類型數據的常量console
{ const k = { a: 1 }; // 對象是引用類型,它的指針沒變,對象自己改變了 k.a = 2; k.b = 3; console.log(k); // {a: 2, b: 3} }