0

假设函数声明是一个语句,其中 function 关键字是语句的第一个单词,例如:

function() { console.log("foo") };

假设一个函数表达式如下:

对于命名函数

var func = function doSomething() { console.log("foo") };

对于匿名函数

var func = function() { console.log("foo") };

匿名函数是什么情况,在以下示例中作为参数传入:

for (let i = 0; i < 5; i++) {
    setTimeout(function() { console.log(i); }, 200); 
};

这是一个函数声明还是一个函数表达式,因为它被分配给WindowOrWorkerGlobalScope的 setTimeout 方法的参数变量

4

1 回答 1

0

显然是一个函数表达式

来自 MDN

函数表达式

function 关键字可用于在表达式中定义函数。


句法

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

函数表达式与函数声明非常相似并且几乎具有相同的语法(有关详细信息,请参阅函数语句)。函数表达式和函数声明的主要区别在于函数名,可以在函数表达式中省略函数名以创建匿名函数。函数表达式可以用作 IIFE(立即调用函数表达式),它在定义后立即运行。另请参阅有关功能的章节以获取更多信息。



函数声明

句法

function name([param[, param,[..., param]]]) {
   [statements]
}
于 2020-05-27T06:48:42.990 回答