JS匿名函数直接执行怎么写

问题

Javascript中匿名函数直接执行怎么写?
function(){}()这种写法为什么会报错?

回答

常规写法,最通用,ES5支持,最外层的括号使得function识别为表达式,如果没有括号会被识别为函数声明。

(function () {
  console.log('IIFE 1');
})();

箭头函数写法,最简短,ES6支持。

(() => {
  console.log('IIFE 2');
})();

前操作符写法,不太常用,ES5支持。同样可以防止识别为函数声明。

!function () { console.log('IIFE 3'); }();
+function () { console.log('IIFE 3'); }();
-function () { console.log('IIFE 3'); }();

总结:如果function外没有括号或者前操作符,function会被识别为函数声明,而不作为匿名函数来执行。


最后修改于 2025-07-04

- 目录 -