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)
})
这打破了:
Caught - TypeError:无法读取未定义
的属性'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)
})
这是否意味着我应该在每个声明之后使用分号来保证安全?
答案 0 :(得分:1)
假设你有一个函数returnArray()
,你猜对了,它就是一个数组。
让我们说你打这个电话:
#do stuff
returnArray();
[n].blah
#do other stuff
#this returns an array. say [1,2,3,4,5];
#and in the next line it does [n].blah
现在假设您在没有分号的情况下拨打同一个电话
#do stuff
returnArray()
[n].blah
#do stuff
#this effectively does [1,2,3,4,5][n]
#which is the nth index element of the returned array.
这类似于获取返回数组的第n个索引,这通常不是您尝试做的。
答案 1 :(得分:0)
当你不使用分号javascript时,请考虑以下方式
process.on('',function (err) {..})[1,2,3,4,5].forEach(function(element) {
console.log("Loop " + element)
})
忘记了process.on()没有像[1,2,3,4,5]那样的属性,这就是为什么它是未定义的