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} }