function a(b){ var b; console.log(b); // 结果为什么是2}
a(2);function a(b){ var b = 4;
console.log(b); //结果为什么是4}
a(2);这个是arguments和变量的优先顺序在赋值前和赋值后不一样吗。
1 回答
慕的地6264312
TA贡献1817条经验 获得超6个赞
传入函数的参数是这个函数的局部变量
第一个函数 a(2) 由于 b 已经是这个函数的局部变量了 var b
其实什么都没做
第二个函数 var b = 4
, 其实是给 b 重新赋值为4了而已。
总结:变量还是那个变量,唯一的区别是第二个函数重新赋值了而已。
最后提的那个问题,其实没有什么优先顺序,同名变量重新 var
定义,会忽略掉。
添加回答
举报
0/150
提交
取消