【发布时间】:2017-11-17 06:11:31
【问题描述】:
process.on('exit', function () {
console.log("Exiting normally")
})
process.on('uncaughtException', function (err) {
console.log("Caught - " + err)
})
[1,2,3,4,5].forEach(function(element) {
console.log("Loop " + element)
})
这打破了:
捕获 - 类型错误:无法读取未定义的属性“forEach”
正常退出
而当我添加分号时,它会起作用:
process.on('exit', function () {
console.log("Exiting normally")
})
process.on('uncaughtException', function (err) {
console.log("Caught - " + err)
}); // Added semi colon here
[1,2,3,4,5].forEach(function(element) {
console.log("Loop " + element)
})
这是否意味着为了安全起见,我应该在每条语句后使用分号?
【问题讨论】:
-
process.on不以行终止符}结尾,因此不会发生自动分号插入。 -
因为 JavaScript 很傻,除非你明确地用分号结束语句,否则它会假设一些事情。它现在假定尖括号是前一个语句的索引。是的,使用分号是阻止这种情况的好方法。
-
一般来说,你应该用分号结束你的语句。 stackoverflow.com/questions/444080/…
-
只有在理解自动分号插入的情况下才允许人们省略分号。 “这是否意味着为了安全起见,我应该在每条语句后使用分号?”语法规则实际上规定expression statements are terminated with a semicolon。
-
这就是为什么大多数 linter 会给你一个关于在数组文字上使用方法的警告,即
[...].method()
标签: javascript node.js