var let const的区别

2021-04-07  本文已影响0人  Marshall3572

ES 6 新特性一览
我用了两个月的时间才理解 let

1. let 的作用域在最近的{}之间
2. 如果你在 let a 之前使用 a, 那么报错
3. 如果你重复let a ,那么报错
const
1. 2. 3. 同上
4. 只有一次赋值机会,且要在声明的时候立马赋值

var的bug

  1. var定义的变量,其作用域是函数体的全部。
for(var i=0;i<10;i++){
  var a = 'a';
}

console.log(a); // 'a'

跳出for循环了还可以访问到for循环里定义的变量

  1. 循环内变量过度共享
for(var i = 0;i < 3;i++){
  setTimeout(function(){
    console.log(i);
  },3000)
}

会输出3个3,而不是预想的0、1、2

let是更完美的var

let就是用来解决上边两个bug的。

const是用来定义常量的

const定义的变量在声明时就必须赋值

上一篇 下一篇

猜你喜欢

热点阅读