【问题标题】:Node.js Semicolon Use [duplicate]Node.js分号使用[重复]
【发布时间】:2019-05-14 04:07:15
【问题描述】:

为什么在node.js中,有些东西不需要/一般不用分号?例如,这段代码运行得很好,没有分号 =>

var server = app.listen(3000, function() {
    var host = server.address().address
    var port = server.address().port
    console.log("App is listening on port 3000...")
})

【问题讨论】:

    标签: node.js


    【解决方案1】:

    这并不特定于 Node.js 甚至 V8。它是 Ecmascript(ES) 的一个特性。即使你遇到的箭头函数也是 Ecmascript 特性。在某些时候(我认为是 ES6),ES 规范使分号成为可选的。一些 linting 库将删除插入的分号。

    【讨论】:

      【解决方案2】:

      因为 NodeJS 在 Chrome 的 V8 JavaScript 引擎上运行。它基本上是在服务器上运行的 JavaScript,在 JavaScript 中有一个叫做自动分号插入的东西。

      解析 JavaScript 的 V8 引擎将遵循某些规则(根据 ECMAScript 规范)并在分号不存在时自动插入。

      如果您想更多地在 Google 上搜索,有很多关于自动分号插入的文章,例如规则是什么,什么时候失败等等。

      【讨论】:

        【解决方案3】:

        javascript 解析器会尽力翻译您要编写的内容。但有时它可能非常模棱两可,请考虑这个例子

        function(x) {
            return 
               x
        }
        

        它应该被解释为什么都不返回吗?或返回x。为避免这些问题,请在每行末尾添加 ;

        【讨论】:

          猜你喜欢
          • 2013-06-24
          • 1970-01-01
          • 2021-06-28
          • 2016-04-29
          • 1970-01-01
          • 1970-01-01
          • 2012-02-21
          • 2011-07-14
          • 2014-01-23
          相关资源
          最近更新 更多