var、let 和 const 的区别

发布时间 2023-10-17 23:29:03作者: 张哲Zeo

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 在声明变量时必须赋初始值,而且不能修改,修改的话会报错。