var employeeId = 'abc123';
function foo() {
employeeId = '123bcd';
return;
var employeeId = function(){}
}
foo();
console.log(employeeId);
我是javascript编程的新手,有人可以向我解释为什么以上 输出是' abc123'不是{ 123bcd',我认为employeeId是在里面定义的 foo()应该是全局变量并覆盖外部变量,我错了吗?
答案 0 :(得分:0)
当你写:
var employeeId = function(){}
JavaScript实际上提升employeeId
,代码变为:
function foo() {
var employeeId;
employeeId = '123bcd';
return;
employeeId = function(){}
}
由于在函数内声明的var
具有与功能块相同的范围,因此它不会覆盖外部employeeId
。