是“;论点”;JavaScript中的无效参数名称

Is "arguments" an invalid parameter name in JavaScript?

本文关键字:无效 参数 JavaScript 论点      更新时间:2023-09-26

"arguments"在JavaScript中是无效的参数名称吗?

我问是因为我在PhantomJS中遇到了一个问题。

在严格模式下,不能将其用作标识符(函数参数、变量等);详细信息。在松散模式下,您可以使用它。这是为了避免与所有非箭头函数所具有的arguments伪数组发生冲突。(从技术上讲,这不是一个保留词,但假装它不会出错。)

免费的实例:

在松散模式下工作:

// Works in loose mode
function foo(arguments) {
  console.log("arguments is " + arguments);
}
foo(42);

并且不处于严格模式:

"use strict";
// And not in strict mode
function foo(arguments) {
  console.log("arguments is " + arguments);
}
foo(42);

它是一个特殊对象,对应于传递给函数的参数。所以,除非你把它用于这个目的,否则它可能会给你带来问题。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments

这是许多保留字之一。http://www.w3schools.com/js/js_reserved.asp

编辑:好吧,T.J.,这不是,但也不是完全错的。根据David Flanagan在Javascript《最终指南》中的说法,在严格模式下,"arguments"被禁止作为参数、变量或函数的名称。