最近我对JavaScript的变量提升行为感到困惑,现在我被卡住了。
所以,有两个例子。
var alpha = 'alpha';
var beta = 'beta';
f(); //beta
var f = function f1() {
console.log(beta);
};
function f() {
console.log(alpha);
}
f(); // alpha
第一个函数按预期工作,因为当Javascript建立词法环境时,函数声明会覆盖变量f(值为“undefined”)。
但第二个函数让我有些困惑,我不理解其中的一些内容。
var alpha = 'alpha';
var beta = 'beta';
f(); // - alpha
function f() {
console.log(alpha);
}
var f = function f1() {
console.log(beta);
};
f(); // beta