var、let和const的区别

var 是 variable的简写,变量的意思
let 从字面理解是‘让’的意思,在这里代表着局部声明
const 定义一个常量

var能重复声明,let不能
let的变量作用范围不同,不存在变量提升

一、let

let是更完美的var

  1. let声明的变量拥有块级作用域,let声明仍然保留了提升的特性,但不会盲目提升。
  2. let声明的全局变量不是全局对象的属性。不可以通过window.变量名的方式访问
  3. 形如for (let x…)的循环在每次迭代时都为x创建新的绑定
  4. let声明的变量直到控制流到达该变量被定义的代码行时才会被装载,所以在到达之前使用该变量会触发错误。

二、const

定义常量值,不可以重新赋值,但是如果值是一个对象,可以改变对象里的属性值。


引用

const obj = {"a":1, "b":2};

引用

obj = {};// 重新赋值,报错!
obj.a = 3;
console.log(obj.a); // 3


你可能感兴趣的:(var、let和const的区别)