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

Comments

Leave a Comment