在javascript中,如何将参数分配给具有相同名称的变量

How does the assignment of a parameter to a variable with the same name works in javascript?

本文关键字:变量 分配 javascript 参数      更新时间:2023-09-26

为什么以下代码没有警告未定义?

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");