如您所知,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 statement在生产环境中写过类似的文章。仅仅因为我知道ECMAscript的“问题”而对分号插入不是那么聪明,我现在想知道,该代码能否100%有效。在我对FF / Chrome / IE(最新版本)的首次测试中,这似乎完全可以,但是真的吗?
如果除了该行中的语句以外,自动分号插入是否会“唤醒” return?任何人都可以提供有关实现的详细信息吗?
侃侃尔雅
相关分类