Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
if (function foo(){}) 是一个表达式,因为“上下文”因为“(括号)”是一个分组运算符,分组运算符只能包含一个表达式。
这就引出了一个问题,你可以在 IIFE 中声明一个函数,还是它仍然算作一个函数表达式?
如果函数被括在括号中,它本身就变成了一个表达式,因为括号创建了一个表达式上下文。
这不会影响函数体中的任何语句或声明。
(function iife() { function example() { … } … }());
在这里,字面量 foriife是一个表达式,因为它在里面(…()),但example像往常一样是一个声明,因为它是函数体的一部分。
iife
(…())
example