1
我很高兴JavaScript有新的let statement来声明一个块作用域局部变量。但是,在switch语句中声明let
变量时,似乎会出现类型错误,这对于使用let
来说非常有用。为什么switch语句只有一个底层块?
function test(x) {
'use strict';
switch (x) {
case 0:
let foo;
break;
case 1:
let foo; // TypeError for redeclaration.
break;
}
}
果然,MDN显示了这个例子:
您可能会遇到switch语句中的错误,因为只有一个底层块。
那么为什么switch语句只有一个底层块呢?
你不能在同一个块中有2个'foo'。 –
@JohnnyMopp我不确定你读了我的问题。 – styfle
http://stackoverflow.com/questions/2524397/what-is-the-javascript-variable-scope-in-a-switch-case-statment –