关于自动运行功能的困惑

时间:2016-10-24 19:22:06

标签: javascript function

我知道自动运行的功能是什么,我经常在Node.js和简单的JavaScript中使用它们。但我仍然不明白。

我知道为什么以下工作

close(

但我真的不知道为什么以下有效......

(function () {/* Stuff */})();

......而以下情况并非......

(function () {/* Stuff */}());

......但这也有效......

function () {/* Stuff */}();

我可以得到详细解释吗?

1 个答案:

答案 0 :(得分:-1)

如果是javascript



(function () {console.log("hi");})();




这是一个可立即调用的函数表达式,它意味着定义后跟调用,因此它会被立即调用它



function () {console.log("hi")}();




这将抛出一个错误,因为定义后跟大括号,如果要调用它,请将其设为IIFE



!function () {console.log("hi")}();




这是因为,如果在函数声明之前放置一元运算符,则不需要添加结束括号,它会删除代码中的一个字符。

希望有所帮助