function a(b){
var b;
console.log(b); // 结果为什么是2
}
a(2);
function a(b){
var b = 4;
console.log(b); //结果为什么是4
}
a(2);
这个是arguments和变量的优先顺序在赋值前和赋值后不一样吗。
function a(b){
var b;
console.log(b); // 结果为什么是2
}
a(2);
function a(b){
var b = 4;
console.log(b); //结果为什么是4
}
a(2);
这个是arguments和变量的优先顺序在赋值前和赋值后不一样吗。
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答832 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
5 回答2.3k 阅读
传入函数的参数是这个函数的局部变量
第一个函数 a(2) 由于 b 已经是这个函数的局部变量了
var b
其实什么都没做第二个函数
var b = 4
, 其实是给 b 重新赋值为4了而已。总结:变量还是那个变量,唯一的区别是第二个函数重新赋值了而已。
最后提的那个问题,其实没有什么优先顺序,同名变量重新
var
定义,会忽略掉。