<分区>
您可能知道,ECMAscript 试图变得聪明,如果您没有显式编写分号,它会自动插入分号。简单的例子
function foo() {
var bar = 5
return bar
}
仍将按预期工作。但是,如果您依赖于此,则有一些注意事项。如果我们像这样重写那个函数
function foo() {
var bar = 5
return
{
bar: bar
}
}
..那个函数现在会返回 undefined
因为解释器会在 return
语句之后插入那个分号(这就是为什么你总是应该在与语句在同一行)。
但是,了解所有这些后,我现在想知道如何安全像下面这样的 return
语句,跨浏览器和版本
function foo() {
var a = true,
b = true,
c = false;
return a
&& b
&& c;
}
我只是在生产环境写了一个类似的return语句
。仅仅因为我知道 ECMAscript 在分号插入方面不太聪明的“问题”,我现在想知道该代码是否 100% 有效。在我对 FF/Chrome/IE(最新版本)的第一次测试中,这似乎完全没问题,但真的如此吗?
如果该行中除了 return
语句之外,自动分号插入 是否“唤醒”?任何人都可以提供有关此的实现级别的详细信息吗?