Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript let var或var to let_Javascript_Scope_Var_Let - Fatal编程技术网

Javascript let var或var to let

Javascript let var或var to let,javascript,scope,var,let,Javascript,Scope,Var,Let,在过去的几个月里,我学到了很多关于JavaScript的知识。多年来,我一直在滥用这些语言,我敢说,我现在对这种语言有了更好的理解,我也开始喜欢它的功能性带来的好处。 最近我开始学习计划,但那只是为了好玩。浏览页面时,我注意到JS虽然没有块作用域,但有一个关键字可以用来声明给定块的局部变量,很像Scheme的let: for (var i=0;i<someArray.length;i++) { console.log(someArray[i]); } console.log(i);

在过去的几个月里,我学到了很多关于JavaScript的知识。多年来,我一直在滥用这些语言,我敢说,我现在对这种语言有了更好的理解,我也开始喜欢它的功能性带来的好处。
最近我开始学习计划,但那只是为了好玩。浏览页面时,我注意到JS虽然没有块作用域,但有一个关键字可以用来声明给定块的局部变量,很像Scheme的
let

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

for(var i=0;i是的,这完全与浏览器支持有关。目前只有Firefox实现了它(因为它是ECMAScript超集的一部分)

但它是,所以有希望


我怀疑
var
let
有很多好处,因为两者都得到了支持。我认为格言应该是“
let
是新的
var

不能接受你的答案(再过5分钟),但你完全正确,我也有你的希望……虽然很傻,但我目前正在使用Chrome,如果我刚刚花时间打开我的控制台并尝试
让x=1;
我就会知道那里有问题。很傻,但仍然:
希望每个读到这个问题的人在EC中尽快提出支持let的请求MA邮件列表:)@EliasVanOotegem:是的,我最后一次听说他们的目标是2013年12月,所以我们还有一些等待,但是你可以通过设置启动标志来启用Chrome中已经实现的一些新功能,允许实验性JavaScript。不确定是否包括
let
。要设置这些,请键入
chrome://flags/
在chrome的地址栏中。刚刚启用了实验功能,并且支持
let
,但是FF和chrome之间存在一些差异,尽管部分原因可能是控制台评估代码的方式不同。无论如何,一个大+1和感谢linkTypeScript将在1.4版本中提供
let
支持:@Vadorequest:考虑到TS刚刚被转换成JS,这不是重点。这个问题是关于各种JS实现,而不是Transcompiler/X编译器,以及它们如何处理ES6特性。
for (let i=0;i<someArray.length;i++)
{
    console.log(someArray[i]);
}
console.log(i);//undefined