为什么typeof
的{{1}}未在以下代码中定义?
b
答案 0 :(得分:2)
因为您使用声明a
在var b
函数范围内初始化一个新变量。
var b
在赋值(b = b
)之前初始化并运行,因此它将刚刚初始化的空值分配给自身。
要更改输出,您可以跳过var
声明和typeof b
输出“功能”:
var b = function() {}
var a = function() {
b = b;
console.log('typeof function_b:', typeof b); // Outputs "function"
}
a();
答案 1 :(得分:0)
那是因为变量首先声明(var b
),然后分配b = b
。声明后,该范围内为undefined
,因此您需要为其分配undefined
。