{// 1.1、变量提升
console.log(a);//undefinedvar a ="m么么叽"}{// 1.2、没有块级作用域,全局变量会造成污染for(var i =0; i <2; i++){
console.log(i);}
console.log(i);//3 这里其实不应该能访问到}}
console.log("————————————————————————————");
2、初始化前无法访问
{// console.log(am); // Cannot access 'am' before initialization,初始化前无法访问“am”// let am;}
const foo;// SyntaxError: Missing initializer in const declaration 常量声明中缺少初始值设定项
3、const的作用域与let命令相同:只在声明所在的块级作用域内有效。
if(true){constMAX=5;}alert(MAX)// Uncaught ReferenceError: MAX is not defined
4、const命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用。
if(true){
console.log(MAX);// Uncaught ReferenceError: Cannot access 'MAX' before initialization//在初始化之前无法访问“MAX”constMAX=5;}
5、const声明的常量,也与let一样不可重复声明。
var message ="Hello!";let age =25;// 以下两行都会报错const message ="Goodbye!";//Identifier 'message' has already been declared 已声明标识符“message”const age =30;// Identifier 'age' has already been declared 已声明标识符“age”