【发布时间】:2017-02-23 07:52:40
【问题描述】:
有人可以解释为什么会发生这种情况吗?
如果我在一个名为test.js 的文件中写下这样的内容,
const anyObject = {}
(function(){
console.log('hello world!')
}())
使用$node test.js通过控制台运行它
然后在控制台中,hello world! 将被打印出来,但随后是:
TypeError: (intermediate value) is not a function
我不知道那里到底发生了什么,我猜节点以某种方式将函数表达式作为函数调用表达式?
我正在使用节点v6.9.1
【问题讨论】:
-
为了热爱一切,请使用分号,
-
检查括号')'
-
IIFE 的演示通常像
;(function() ...... 因为懒惰的程序员不会在应该使用分号的地方使用分号 ... -
在你的代码上使用一个 linter 来解决这些问题......不过,我怀疑你会厌倦即使是最短的代码段中的“缺少分号”错误
-
一个很好的例子,说明人们在懒惰并忽略分号时如何陷入困境。
标签: javascript node.js iife