Node.js 分号使用

11 node.js

为什么在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...")
})
Run Code Online (Sandbox Code Playgroud)

Ber*_*gur 17

因为 NodeJS 运行在 Chrome 的 V8 JavaScript 引擎上。它基本上是在服务器上运行的 JavaScript,在 JavaScript 中有一个叫做Automatic Semicolon Insertion 的东西 。

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

有很多关于自动分号插入的文章,如果你想用谷歌搜索更多,例如规则是什么,什么时候失败等等。


cav*_*rac 6

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

function(x) {
    return 
       x
}
Run Code Online (Sandbox Code Playgroud)

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