函数表达式是否必须分配给变量(在常规上下文中使用时)?我知道对于初学者来说,当它们是回调(作为另一个函数的参数传递)或在 IIFE 中使用时,它们不需要。
如果他们这样做,他们的 MDN 似乎是 page会使这个在这个描述中更加突出和居中:
A function expression is very similar to and has almost the same syntax as a function statement (see function statement for details). The main difference between a function expression and a function statement is the function name, which can be omitted in function expressions to create anonymous functions.
此外,在同一个 MDN 页面上,变量赋值包含在语法中:
> var myFunction = function [name]([param1[, param2[, ..., paramN]]]) {
> statements };
在他们的 chapter在函数上,不包括变量赋值(不要介意丢失的分号):
function [name]([param[, param[, ... param]]]) {
statements
}
最佳答案
它们不必分配给变量。例如,这里有一个函数被评估为不是回调的表达式:
(
() => void 0
);
这只是一个没有做任何事情的孤立表达式,有点像
5;
也就是说,虽然以上内容技术上是合法的,但它们毫无用处。函数表达式不必被使用(例如对变量的赋值或作为参数),但如果不使用,就没有多大意义。
关于javascript - 是否必须将(非回调)函数表达式分配给变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50960144/