TypeError: переменная "x" переопределяет аргумент

Сообщение

TypeError: переменная "x" повторно объявляет аргумент (Firefox)

Тип ошибки

TypeError предупреждение только в строгом режиме.

Что пошло не так?

 

То же имя переменной происходит в качестве параметра функции, и затем повторно объявляется с помощью назначения var в теле функции. Это может быть конфликт имен, поэтому JavaScript предупреждает об этом.

Эта ошибка возникает как предупреждение только в коде строгого режима. В нестрогом коде повторное объявление игнорируется.

 

Примеры

Неправильные примеры

В этом случае переменная "arg" объявляет аргумент повторно.

'use strict';

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

Правильные примеры

Чтобы исправить это предупреждение, оператор var можно просто опустить, так как переменная уже существует. В других случаях можно переименовать параметр функции или имя переменной. 

'use strict';

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

Смотрите также

Метки документа и участники

Внесли вклад в эту страницу: mdnwebdocs-bot, MakarovDs777
Обновлялась последний раз: mdnwebdocs-bot,