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

标签 javascript anonymous-function self-executing-function

为什么下面的代码不会提示 undefined?

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

关于javascript - 将参数分配给具有相同名称的变量如何在 javascript 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26465778/

相关文章:

Javascript:仅验证 alpha 和空格

javascript - 设置 clickedit 输出的样式

javascript - 为什么要传递未定义的 javascript 函数参数?

javascript - 为什么在获取脚本路径时使用自执行匿名函数

c++ - 自执行 C++11 lambda 的成本

javascript - 使用 jQuery 获取没有 CSS 类的特定元素

javascript - 最快的通用 Levenshtein Javascript 实现

javascript - 如何计算字符串长度,如果长度等于X,则执行代码? - JavaScript

function - 匿名函数 vs 非匿名函数 Lua