var 是 variable的简写,变量的意思
let 从字面理解是‘让’的意思,在这里代表着局部声明
const 定义一个常量
var能重复声明,let不能
let的变量作用范围不同,不存在变量提升
一、let
let是更完美的var
- let声明的变量拥有块级作用域,let声明仍然保留了提升的特性,但不会盲目提升。
- let声明的全局变量不是全局对象的属性。不可以通过
window.变量名
的方式访问- 形如
for (let x…)
的循环在每次迭代时都为x
创建新的绑定- let声明的变量直到控制流到达该变量被定义的代码行时才会被装载,所以在到达之前使用该变量会触发错误。
二、const
定义常量值,不可以重新赋值,但是如果值是一个对象,可以改变对象里的属性值。
引用
const obj = {"a":1, "b":2};
引用
obj = {};// 重新赋值,报错!
obj.a = 3;
console.log(obj.a); // 3