【发布时间】:2021-03-16 19:54:26
【问题描述】:
let number = 100
function change(number) {
number = number * 10;
}
change(number);
console.log(number);
上面的代码输出100,而
let number = 100
function change(blah) {
number = number * 10;
}
change(number);
console.log(number);
输出 1000
有人可以解释为什么当参数名称也是“数字”时数字没有在函数内部更新其值
【问题讨论】:
-
当您将参数命名为
blah时,number并未在函数内部的任何位置定义,因此它指的是全局变量。当你将参数命名为number时,它变成了一个局部变量,不会影响全局变量 -
这能回答你的问题吗? Does JavaScript pass by reference?
标签: javascript pass-by-reference javascript-scope