为什么在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...")
})
答案 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规范使分号成为可选。有些棉绒库会删除插入的分号。