【发布时间】:2019-06-16 19:09:06
【问题描述】:
我正在学习 JavaScript,但对 arguments 属性数组感到很困惑。
我有一个函数,它接受一个参数并返回它。当我传递参数并使用arguments[0] = value 重新分配它时,它正在更新值。
function a(b) {
arguments[0] = 2;
return b;
}
console.log(a(1)); //returns 2
但是当我调用不带参数的同一个函数时,它返回undefined。
function a(b) {
arguments[0] = 2;
return b;
}
console.log(a()); //returns undefined
但即使我通过undefined,值也会更新。
function a(b) {
arguments[0] = 2;
return b;
}
console.log(a(undefined)); //returns 2
我认为如果你不将参数传递给 JavaScript 函数,它会自动创建它并将值分配给 undefined 并且在更新后它应该反映更新后的值,对吧?
a() 和 a(undefined) 也是同一个东西,对吧?
【问题讨论】:
标签: javascript arrays function arguments variable-assignment