Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 立即调用函数表达式导致错误?_Javascript_Node.js_Iife - Fatal编程技术网

Javascript 立即调用函数表达式导致错误?

Javascript 立即调用函数表达式导致错误?,javascript,node.js,iife,Javascript,Node.js,Iife,有人能解释为什么会发生这种情况吗 如果我在一个名为test.js的文件中写这样的东西 使用$node test.js通过控制台运行它 然后在控制台中,一个你好的世界!将被打印,但随后是: TypeError:中间值不是函数 我不知道这里到底发生了什么,我想node会把函数表达式当作函数调用表达式吗 我使用的是node v6.9.1您可以使用void进行调用,而不使用分号 这将强制表达式求值并返回未定义的值 常量anyObject={} 空函数{ 控制台。记录“你好,世界!” } 您可以使用vo

有人能解释为什么会发生这种情况吗

如果我在一个名为test.js的文件中写这样的东西

使用$node test.js通过控制台运行它

然后在控制台中,一个你好的世界!将被打印,但随后是: TypeError:中间值不是函数

我不知道这里到底发生了什么,我想node会把函数表达式当作函数调用表达式吗

我使用的是node v6.9.1

您可以使用void进行调用,而不使用分号

这将强制表达式求值并返回未定义的值

常量anyObject={} 空函数{ 控制台。记录“你好,世界!” } 您可以使用void进行调用,而不使用分号

这将强制表达式求值并返回未定义的值

常量anyObject={} 空函数{ 控制台。记录“你好,世界!” } 使用分号 语法在你的生活中是不同的 const anyObject={}; 函数{ console.log'helloworld!'; }; 使用分号 语法在你的生活中是不同的 const anyObject={}; 函数{ console.log'helloworld!';
};出于对一切的热爱,请使用分号,检查你的括号,生命通常是这样展示的;作用因为懒惰的程序员不会在他们应该使用分号的地方使用分号…在代码上使用一个linter来处理这样的问题。。。尽管如此,我怀疑你会厌倦在最短的代码中漏掉分号的错误——这是一个很好的例子,说明了人们在懒惰时是如何陷入麻烦的,并且漏掉了分号;作用因为懒惰的程序员不会在他们应该使用分号的地方使用分号…在代码上使用一个linter来处理这样的问题。。。尽管如此,我怀疑你会厌倦在最短的代码段中丢失分号错误——这是一个很好的例子,说明了当人们变得懒惰而忽略了分号时,他们是如何陷入麻烦的。
const anyObject = {}
(function(){ 
  console.log('hello world!') 
}())