JavaScript 函数参数与 Arguments 的关系
JavaScript 函数参数与 Arguments 的关系
在 JavaScript 函数中,arguments 可以和参数结合使用,并且在不同情况下有不同的表现。
严格模式或者是非正常参数
在严格模式下或者参数是剩余参数、默认参数、解构赋值参数下,修改 arguments 或者参数不会影响彼此。
"use strict";
function func(num) {
num = 2;
console.log(arguments[0]);
}
func(10); // 10
或者
function func(num = 1) {
arguments[0] = 2;
console.log(num);
}
func(10); // 10
非严格模式并且是正常参数
在非严格模式下,并且函数参数是正常参数下,修改 arguments 或者参数会影响彼此。
function func(num) {
num = 2;
console.log(arguments[0]);
}
func(10); // 2
或者
function func(num) {
arguments[0] = 2;
console.log(num);
}
func(10); // 2