为什么 `let` 不被更频繁地使用?

问题描述 投票:0回答:1

在过去的几个月里,我学习了很多关于 JavaScript 的知识。在滥用这些语言多年后,我敢说我现在对这门语言有了更好的理解,并且我已经开始“喜欢”它的功能特性的好处。 最近我开始学习Scheme,但这只是为了好玩。浏览 MDN 参考资料
,我注意到 JS 虽然缺乏块作用域,但确实有一个关键字,可以用来声明给定块的本地变量,就像Scheme 的 let:


for (var i=0;i<someArray.length;i++) { console.log(someArray[i]); } console.log(i);//will log someArray's length

鉴于:

for (let i=0;i<someArray.length;i++) { console.log(someArray[i]); } console.log(i);//undefined

所以我现在想知道的是:为什么
let

没有被更频繁地使用?这与 X 浏览器支持有关吗?它只是那些

鲜为人知的好东西
之一吗?简而言之,使用var
相对于
let
有什么优势,有哪些注意事项?

据我所知,

let

的行为(如果有的话)更加一致(单个块中的双重声明会引发

TypeError
,函数体除外(尽管 ECMA6 草案修复了这个问题)。
老实说,除了这个功能/关键字不太为人所知之外,我很难想到反对使用 
let
for 循环的任何论据,或者任何临时变量可以使代码更具可读性的地方。
    

javascript scope var let
1个回答
28
投票
(因为它是 ECMAScript 超集的一部分)

但是它

即将在 ES6 中

出现,所以还有希望...... 我怀疑是否可以说

var

let
有很多好处,因为两者都受到支持。我认为口头禅将是
let是新的
var

    

© www.soinside.com 2019 - 2024. All rights reserved.