--- title: 'TypeError: переменная "x" переопределяет аргумент' slug: Web/JavaScript/Reference/Errors/Var_hides_argument tags: - Errors - JavaScript - Strict Mode - TypeError translation_of: Web/JavaScript/Reference/Errors/Var_hides_argument original_slug: Web/JavaScript/Reference/Errors/Переменные_скрывают_аргумент ---
TypeError: переменная "x" повторно объявляет аргумент (Firefox)
{{jsxref("TypeError")}} предупреждение только в строгом режиме.
То же имя переменной происходит в качестве параметра функции, и затем повторно объявляется с помощью назначения var в теле функции. Это может быть конфликт имён, поэтому JavaScript предупреждает об этом.
Эта ошибка возникает как предупреждение только в коде строгого режима. В нестрогом коде повторное объявление игнорируется.
В этом случае переменная "arg" объявляет аргумент повторно.
'use strict'; function f(arg) { var arg = 'foo'; }
Чтобы исправить это предупреждение, оператор var можно просто опустить, так как переменная уже существует. В других случаях можно переименовать параметр функции или имя переменной.
'use strict'; function f(arg) { arg = 'foo'; }