之后在if语句的标头中声明的函数是未定义的

时间:2015-10-04 05:29:51

标签: javascript scope

为什么typeof f "undefined"在下面的示例中?不应该是"function"

var x;

if (function f(){}) {
  x = typeof f;
}

console.log(x); // "undefined"

1 个答案:

答案 0 :(得分:1)

编辑:我对我的快速回复表示歉意,我没有充分阅读这个问题。

但我确实知道这里发生了什么,因为函数的范围无法访问f的函数声明,typeof f是{{1} }和undefined连接字符串" undefined"到x += typeof f的值(即1)。因此,x

的值为1undefined