You are on the editable version of MDN Web Docs

View as an MDN Web Docs user: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Var_hides_argument

The JavaScript strict mode-only exception "variable redeclares argument" occurs when the same variable name occurs as a function parameter and is then redeclared using a var assignment in a function body again.

Message

TypeError: variable "x" redeclares argument (Firefox)

Error type

TypeError warning in strict mode only.

What went wrong?

The same variable name occurs as a function parameter and is then redeclared using a var assignment in a function body again. This might be a naming conflict and thus JavaScript warns about it.

This error occurs as a warning in strict mode code only. In non-strict code, the redeclaration is silently ignored.

Examples

Invalid cases

In this case, the variable "arg" redeclares the argument.

'use strict';

function f(arg) { 
  var arg = 'foo'; 
}

Valid cases

To fix this warning, the var statement can just be omitted, because the variable exists already. In other cases, you might to rename either the function parameter or the variable name.

'use strict';

function f(arg) {
  arg = 'foo';
}

See also

Document Tags and Contributors

Contributors to this page: fscholz, mdnwebdocs-bot, nmve
Last updated by: fscholz,