我知道自动运行的功能是什么,我经常在Node.js和简单的JavaScript中使用它们。但我仍然不明白。
我知道为什么以下工作
close(
但我真的不知道为什么以下有效......
(function () {/* Stuff */})();
......而以下情况并非......
(function () {/* Stuff */}());
......但这也有效......
function () {/* Stuff */}();
我可以得到详细解释吗?
答案 0 :(得分:-1)
如果是javascript
(function () {console.log("hi");})();

这是一个可立即调用的函数表达式,它意味着定义后跟调用,因此它会被立即调用它
function () {console.log("hi")}();

这将抛出一个错误,因为定义后跟大括号,如果要调用它,请将其设为IIFE
!function () {console.log("hi")}();

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