使用“let”和“var”在JavaScript中声明变量有什么区别?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (164)

ECMAScript 6引入了let语句。 我听说它被描述为“本地”变量,但我仍然不太确定它与var关键字的行为方式有何不同。

有什么区别? 何时应该使用var?

提问于
用户回答回答于

下面是这两者之间区别的一个例子(对Chrome的支持刚刚开始):

var j变量在for循环作用域(块作用域)之外仍然有一个值,但是let i变量在for循环作用域之外未定义。

"use strict";
console.log("var:");
for (var j = 0; j < 2; j++) {
  console.log(j);
}

console.log(j);

console.log("let:");
for (let i = 0; i < 2; i++) {
  console.log(i);
}

console.log(i);

用户回答回答于

存在一些微妙的差异 - 让范围表达更像是变量范围在或多或少任何其他语言中。

例如 它适用于封闭块,它们在声明之前不存在,等等。

但是值得注意的是,let只是新Javascript实现的一部分,并且具有不同程度的浏览器支持。

扫码关注云+社区

领取腾讯云代金券