По правилу подъема, в том же замыкании, объявление function
почти эквивалентно:
var employeeId = 'abc123';
function foo() {
var employeeId = function () { // hoisted from the function below
var x = 0;
}
employeeId = '123bcd';
return;
// function employeeId() {
// var x = 0;
// }
}
foo();
console.log(employeeId); //abc123
Таким образом, внешняя область действия employeeId
не изменилась, поскольку она была скрыта в области действия foo
.