为了账号安全,请及时绑定邮箱和手机立即绑定

自动分号插入和返回语句

自动分号插入和返回语句

PIPIONE 2019-10-23 12:37:44
如您所知,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?任何人都可以提供有关实现的详细信息吗?
查看完整描述

3 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

正如Christoph指出的那样,您的return语句将在所有浏览器中正常工作。我确实更希望使它更加明确,即使不是对于计算机而是对人类而言,至少要通过将和运算符不同地放置:


return a &&

       b &&

       c;

在这种情况下,没有人需要再三思考自动分号是否会造成严重破坏。我只喜欢JavaScript,您的原始代码更容易阅读。


查看完整回答
反对 回复 2019-10-23
  • 3 回答
  • 0 关注
  • 681 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信