【发布时间】:2018-08-02 11:44:39
【问题描述】:
我正在浏览 JS 提升的代码 sn-ps。其中一个 sn-p 看起来像
var employeeId = 'abc123';
function foo() {
employeeId();
return;
function employeeId() {
console.log(typeof employeeId);
}
}
foo();
输出将是:function
我已阅读有关提升的内容,据我了解,所有变量都将被视为在函数顶部声明并在其实际声明/定义行进行初始化。在这种情况下,employeeId 函数标识符将在函数顶部声明为 var employeeId,其值显然是 undefined,因此函数的第一行应该抛出错误。
请告诉我为什么输出是function?
【问题讨论】:
-
你的问题是什么?
标签: javascript hoisting