让var或var让

时间:2012-11-26 15:51:05

标签: javascript scope var let

在过去的几个月里,我一直在学习很多关于JavaScript的知识。多年来一直滥用这些语言,我敢说我现在对语言有了更好的理解,并且我已经爱> 其功能性的好处。 我最近接受了学习计划,但这只是为了好玩。浏览MDN reference我注意到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有什么好处,有什么警告?< / p>

据我所知,let的行为(如果有的话)更一致(单个块中的双重声明引发TypeError,除了函数体(ECMA6草稿修复此问题,虽然) 说实话,除了这个功能/关键字不是众所周知之外,我很难想到任何参数反对使用let for循环,或者临时变量使得更易读的地方代码。

1 个答案:

答案 0 :(得分:28)

是的,它与浏览器支持完全相关。目前只有Firefox实现它(因为它是ECMAScript超集的一部分)

但它是coming in ES6,所以有希望......

我怀疑可以说var超过let有很多好处,因为两者都得到支持。我认为咒语将是let是新的var