考虑以下两个 JavaScript 片段:
var x = 2;
function f() {
var y = x;
eval('var x;');
return y;
}
对比
var x = 2;
function f() {
var y = x;
var x;
return y;
}
唯一的区别是我已经替换eval('var x;');
为var x;
.
第一个返回2
,但第二个返回undefined
。为什么?