Spec-Zone.ru › JavaScript

SyntaxError: повторное объявление формального параметра "x"

Исключение JavaScript "redeclaration of formal parameter" (повторное объявление формального параметра) возникает, когда одно и то же имя переменной используется в качестве параметра функции, а затем повторно объявляется с помощью присваивания let в теле функции.

Сообщение

SyntaxError: Identifier "x" has already been declared (V8-based)
SyntaxError: redeclaration of formal parameter "x" (Firefox)
SyntaxError: Cannot declare a let variable twice: 'x'. (Safari)

Тип ошибки

SyntaxError

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

Одно и то же имя переменной используется в качестве параметра функции, а затем повторно объявляется с помощью присваивания let в теле функции. Повторное объявление одной и той же переменной в пределах одной и той же функции или области видимости блока с использованием let не допускается в JavaScript.

Примеры

Повторно объявленный аргумент

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

function f(arg) {
  let arg = "foo";
}

// SyntaxError: redeclaration of formal parameter "arg"

Если вы хотите изменить значение "arg" в теле функции, вы можете это сделать, но вам не нужно объявлять ту же переменную снова. Другими словами: вы можете опустить ключевое слово let. Если вы хотите создать новую переменную, вам нужно переименовать ее, так как она уже конфликтует с параметром функции.

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

function g(arg) {
  let bar = "foo";
}

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

  • let
  • const
  • var
  • Грамматика и типы руководство

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Redeclared_parameter

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API