为什么下面的代码不会提醒未定义?
function test(param){
var param = param;
alert(param);
}
test("SO"); // alerts SO
分配给局部变量的参数如何与函数的参数匹配,而不是与局部变量本身匹配?
正确的值是否对函数参数具有“匹配偏好”或原因是什么?
为什么下面的代码不会提醒未定义?
function test(param){
var param = param;
alert(param);
}
test("SO"); // alerts SO
分配给局部变量的参数如何与函数的参数匹配,而不是与局部变量本身匹配?
正确的值是否对函数参数具有“匹配偏好”或原因是什么?
里面有两个部分
var param = param;
第一个是 var 声明:
var param;
第二个是赋值:
param = param;
var 声明什么也不做,因为变量已经存在(变量的范围是整个函数调用)。并且分配什么也不做,因为它保持相同的值。
您可以通过分配不同的值来检查:
function test(param){
console.log('1', param) // logs "SO"
var param = param+"4";
console.log('2', param) // logs "SO4"
}
test("SO");