是否必须将函数表达式分配给变量(在常规上下文中使用时)?我知道当初学者使用回调(作为另一个函数的参数传递)或在IIFE中使用时,它们并不需要。
如果这样做的话,似乎他们的MDN page会在此说明中更加突出和中心:
一个函数表达式非常相似并且几乎相同 语法作为函数语句(有关详细信息,请参见函数语句)。 函数表达式和函数之间的主要区别 statement是函数名称,可以在函数中省略 创建匿名函数的表达式。
此外,在同一MDN页面上,变量分配包含在语法中:
> var myFunction = function [name]([param1[, param2[, ..., paramN]]]) {
> statements };
在函数的chapter中,不包括变量赋值(请不要忘记缺少的分号):
function [name]([param[, param[, ... param]]]) {
statements
}
答案 0 :(得分:2)
不必将它们分配给变量。例如,下面的函数被评估为不是回调的表达式:
(
() => void 0
);
这只是一个孤单的表情,什么也没做
5;
也就是说,尽管以上内容在技术上是合法的,但它们却毫无用处。函数表达式没有没有可以使用(例如对变量的赋值或作为参数),但是如果不使用它,那就没有什么意义了。