let和const
1.声明的变量不会提前(不会预编译)
console.log(flag); let flag = 123; const flag = 456; // 报错
2.变量不允许重复声明(在同一个作用域内)
let flag = 123; let flag = 456; console.log(flag); //报错
3.块级作用域
块内部定义的变量,在外部不可以访问
if(true){ var flag = 123; let flag = 123; } console.log(flag); //报错 {
let flag = 111;
} console.log(flag); //报错 for (let i = 0; i < 3; i++) { // for循环括号中声明的变量只能在循环体中使用 console.log(i); //可以打印出 } console.log(i); //报错
4.const声明的常量不允许重新赋值
const n = 1; n = 2; //报错
5.const声明的常量必须初始化,赋初值
const abc; //报错 const abc = 123;