function test(xxx){
alert(xxx)
var xxx = 123;
function xxx(){
}
alert(xxx)
}
test(444);
输出的是 function,123
能解释下为什么输出结果是这样的吗?
var 之后相当与重定义了
解析后你的代码会变成这样:
function test(xxx){
var xxx; //定交
function xxx(){ //相当于xxx = function() {},覆盖掉原来的xxx的定义
}
xxx = 123; //又覆盖掉上一条的定义
}
test(444);