Node.js分号使用

时间:2018-12-13 00:35:44

标签: 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...")
})

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

function(x) {
    return 
       x
}

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

答案 2 :(得分:0)

这并非特定于Node.js甚至V8。它是Ecmascript(ES)的功能。即使遇到的箭头功能也是Ecmascript功能。在某些时候(我认为是ES6),ES规范使分号成为可选。有些棉绒库会删除插入的分号。