[英]What do the curly braces do in switch statement after case in es6?
有什么區別:
switch (expression) {
case:
somethings;
break;
}
和
switch (expression) {
case: {
somethings;
break;
}
}
起初我以為我可以像這樣返回一個對象文字,但事實證明這是一個語法錯誤。 實際上有什么區別?
另一個問題的例子: 如何在Javascript ES6中將switch語句作為函數參數傳遞?
以這種方式使用的大括號建立自己的塊作用域,您可以在其中定義局部let
變量或const
常量:
switch (false) { case true: { let x = "bar"; console.log(x); break; } case false: { let x = "baz"; console.log(x); break; } }
該示例將拋出沒有嵌套塊作用域,因為在Ecmascript 2015中,不允許在同一作用域內使用具有相同標識符的多個let
/ const
聲明。
請注意, switch
語句本身會創建一個塊作用域,即是否使用嵌套塊作用域, let
switch
/ const
聲明不會泄漏到父作用域中。
但是,在switch
的上下文中,花括號也使用純裝飾,以在視覺上突出顯示各個case
分支的塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.