1. var 是函数作用域;let 是块级作用域,{ } 中为块;
2. 变量提升。var 定义的变量会变量提升,比如 console.log(a); // undefined var a = 1; 而 let 不存在变量提升,反而执行瞬间被称为“暂时性死区”
3. 全局声明。在全局作用域中 var 声明的变量会成为 window 对象的属性,而 let 声明的则不会
4. 条件声明。 由于 var 声明的变量会变量提升,所有重复声明同一变量时,JavaScript引擎会自动将多余的声明在作用域顶部合并为一个声明。而 let 重复声明变量则会报错。
5. for循环中的声明。 var 声明的变量会溢出循环体外部,变成全局变量。而 let 声明的变量则只在循环内部起作用。
6. const 与 let 情况一致,唯一的区别是 const 在声明变量时必须赋初始值,而且不能修改,修改的话会报错。
标签:const,变量,作用域,let,var,声明 From: https://www.cnblogs.com/zeosky-zhe/p/17771019.html