【发布时间】:2018-04-18 13:23:55
【问题描述】:
在下面的示例中,我试图将一个数字添加到函数的类型中,但输出似乎不同。
<html>
<head></head>
<body>
<script>
var k = 1;
if (1) {
eval(function foo(){});
k += typeof foo;
}
console.log(k);
</script>
</body>
</html>
预期输出:
1function
实际输出:
1undefined
有人可以解释为什么输出与预期不同吗?
注意:eval(function(){}) 的类型给出函数的结果。
【问题讨论】:
-
函数表达式的名称仅在该函数表达式内可见。
-
@Xufox:你能解释一下吗?
-
还有什么?真的没有什么要解释的了。
function foo(){}是一个函数表达式(在eval参数内的表达式上下文中)。它的名字foo在它之外是无法访问的。
标签: javascript typeof