(非回调)函数表达式是否必须分配给变量?

时间:2018-06-21 03:57:19

标签: javascript

是否必须将函数表达式分配给变量(在常规上下文中使用时)?我知道当初学者使用回调(作为另一个函数的参数传递)或在IIFE中使用时,它们并不需要。

如果这样做的话,似乎他们的MDN page会在此说明中更加突出和中心:

  

一个函数表达式非常相似并且几乎相同   语法作为函数语句(有关详细信息,请参见函数语句)。   函数表达式和函数之间的主要区别   statement是函数名称,可以在函数中省略   创建匿名函数的表达式。

此外,在同一MDN页面上,变量分配包含在语法中:

> var myFunction = function [name]([param1[, param2[, ..., paramN]]]) { 
> statements };

在函数的chapter中,不包括变量赋值(请不要忘记缺少的分号):

function [name]([param[, param[, ... param]]]) {
   statements
}

1 个答案:

答案 0 :(得分:2)

不必将它们分配给变量。例如,下面的函数被评估为不是回调的表达式:

(
  () => void 0
);

这只是一个孤单的表情,什么也没做

5;

也就是说,尽管以上内容在技术上是合法的,但它们却毫无用处。函数表达式没有没有可以使用(例如对变量的赋值或作为参数),但是如果不使用它,那就没有什么意义了。