Aur*_*mas 21 javascript scope switch-statement ecmascript-6
有什么区别:
switch (expression) {
case:
somethings;
break;
}
Run Code Online (Sandbox Code Playgroud)
和
switch (expression) {
case: {
somethings;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
起初我以为我可以像这样返回一个对象文字,但事实证明这是一个语法错误.实际上有什么区别?
另一个问题的例子: 如何在Javascript ES6中将switch语句作为函数参数传递?
小智 51
以这种方式使用的大括号建立自己的块作用域,您可以在其中定义局部let变量或const常量:
switch (false) {
case true: {
let x = "bar";
console.log(x);
break;
}
case false: {
let x = "baz";
console.log(x);
break;
}
}Run Code Online (Sandbox Code Playgroud)
该示例将抛出没有嵌套块作用域,因为在Ecmascript 2015中,不允许在同一作用域内使用具有相同标识符的多个let/ const声明.
请注意,该switch语句本身会创建一个块作用域,即是否使用嵌套块作用域,内部的let/ const声明switch不会泄漏到父作用域中.
然而,在上下文中switch,花括号也使用纯装饰,以视觉突出各个case分支的块.
你必须使用大括号:
const/ let)时
const/ let)
时| 归档时间: |
|
| 查看次数: |
8540 次 |
| 最近记录: |