在Javascript中,你可以拥有孤独的代码块,即没有的代码块if,function或者类似于它们之前的代码块,在代码中任意放置,如下所示:
var a = 3,
b = 4;
{
a = 50;
b = 50;
}
alert(a + b); //alerts 100
Run Code Online (Sandbox Code Playgroud)
我知道其他一些语言(我认为C++确实如此),并且它们将它用于范围控制:在孤独的代码块内声明的变量不能在它之外访问.但由于Javascript具有函数作用域而不是块作用域,因此必须使用自执行函数(function(){})()来实现相同的效果.
这个结构有目的吗?你见过有人用它吗?规格是否提到了?这只是语法的副作用,它有一些关于代码块的一般规则吗?
正如我在google搜索后发现的那样,标签如何与不是循环的语句一起使用?,孤独的代码块可以与标签相关:
myLabel:
{
for(x in y) {
break myLabel;
}
}
Run Code Online (Sandbox Code Playgroud)
不仅会破坏循环,还会破坏外部代码块.
更新(因为此问题在Google上显示为"javascript代码块"):
通过let在ECMAScript 6中引入关键字,代码块也可用于限制变量的范围.
{
let x = 20;
alert(x) // 20
}
alert(x) // undefined
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2846 次 |
| 最近记录: |