【发布时间】:2020-05-27 06:44:50
【问题描述】:
假设 函数声明 是一个语句,其中 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方法的参数变量
【问题讨论】:
-
它们不是语句,因此它们是表达式。
-
你不能在另一个语句中写一个语句;它只能是一个表达式。
-
# 响应如果你真的知道你需要清楚了解javascript运行时引擎是如何工作的。 ##详细视频youtu.be/QyUFheng6J0
-
var func = …;不是函数表达式,它是带有初始化程序的变量声明 - 语句。只有function() {…}部分是其中的表达式。是的,在参数位置上也是一样的。
标签: javascript anonymous-function function-declaration function-expression