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.2k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
传入函数的参数是这个函数的局部变量
第一个函数 a(2) 由于 b 已经是这个函数的局部变量了
var b
其实什么都没做第二个函数
var b = 4
, 其实是给 b 重新赋值为4了而已。总结:变量还是那个变量,唯一的区别是第二个函数重新赋值了而已。
最后提的那个问题,其实没有什么优先顺序,同名变量重新
var
定义,会忽略掉。