相关疑难解决方法(0)

使用参数数组更改JavaScript函数的参数值无效

我正在学习JavaScript,我对arguments属性数组感到很困惑.

我有一个函数,它接受一个参数并返回它.当我传递参数并使用arguments[0] = value它重新分配时,它正在更新值.

function a(b) {
  arguments[0] = 2;
  return b;
}
console.log(a(1)); //returns 2
Run Code Online (Sandbox Code Playgroud)

但是当我调用没有参数的相同函数时它返回undefined.

function a(b) {
  arguments[0] = 2;
  return b;
}
console.log(a()); //returns undefined
Run Code Online (Sandbox Code Playgroud)

但即使我通过undefined,价值也会更新.

function a(b) {
  arguments[0] = 2;
  return b;
}
console.log(a(undefined)); //returns 2
Run Code Online (Sandbox Code Playgroud)

我认为如果你没有将参数传递给JavaScript函数,它会自动创建它并分配值,undefined并在更新后它应该反映更新的值,对吧?

也a()和a(undefined)是相同的东西,对不对?

javascript arrays arguments function variable-assignment

36
推荐指数
2
解决办法
2537
查看次数

JavaScript:为什么更改参数变量会更改`arguments`"数组"?

考虑:

> function hello(what) {
.     what = "world";
.     return "Hello, " + arguments[0] + "!";
. }
> hello("shazow")
"Hello, world!"
Run Code Online (Sandbox Code Playgroud)

为什么改变价值what变化的价值arguments[0]?

javascript

12
推荐指数
1
解决办法
1342
查看次数