Фрагменты - Идентификатор уже объявлен

Я написал это во фрагменте Chrome:

let myVar = someValue;

И когда я пытаюсь запустить его во второй раз, он говорит, что переменная уже была объявлена и выдает ошибку в первой строке.

Ошибка:

Uncaught SyntaxError: Идентификатор 'myVar' уже объявлен в: 1:1

И, конечно, это будет поведение по умолчанию для консоли, но, похоже, здесь нет особого смысла..

Это предназначено? Есть ли способ обойти это?

Ответ 1

Я считаю, что вы сталкиваетесь с тем, что оператор let может использоваться только для создания переменной один раз в любой заданной области. В вашем примере, даже если вы используете фрагменты Chrome, если вы выведете window.commitPromotionData сразу после инструкции let, вы увидите, что она есть. То, что область применения вашего оператора let присваивает переменной. Повторный запуск того же фрагмента по существу пытается создать одну и ту же переменную в окне и приводит к синтаксической ошибке, как описано в здесь.

У вас есть два способа:

  • Очевидно, первым является преобразование операторов верхнего уровня let в var
  • Или создайте новую область блока для упаковки кода. Это можно сделать, например, путем переноса кода в IIFE (function(){ ... code ... })()

Ответ 2

Используйте область видимости блока и оберните ее в '{}'.

{
  enter code here
}

Ответ 3

Ошибка в том, что вы дважды указали переменную в области.

Вы можете перезагрузить или обновить страницу, затем вы получите новую область, ошибка исчезнет.

Ответ 4

Переместить на es6

;(() => {
    console.log('local scope')
}()

Ответ 5

Создайте локальную область видимости для ваших фрагментов кода. Тогда после завершения выполнения, let жизненный цикл будет закончен. Вы можете запускать свою программу снова и снова.

Торопиться!!!

{
  let a = 10; 
  console.log(a); 
}

  {
   let commitPromotionData = (product) => new Promise((resolve, reject) => {
    //Do something with the server
      var statusCode = 200;

      statusCode == 200 ? resolve(product) : reject();
  });
 }

Ответ 6

Это происходит потому, что где-то в другом фрагменте вы использовали переменную с тем же именем. Убедитесь, что вы сохранили свой фрагмент, а затем обновите страницу.

Чтобы этого не происходило, используйте {} вокруг вашего фрагмента кода, чтобы создать блок, чтобы переменная внутри него была недоступна извне.

Ответ 7

просто приостановите выполнение скрипта. который находится в правом верхнем углу консоли

Ответ 8

LONG SHORT SHOT:. КОГДА ЧТО ОШИБКА POP UP просто нажмите кнопку SOURCE ВАРИАНТА РЯДОМ КОНСОЛИ И ПАУЗА Исключений, который является седьмыми ВАРИАНТАМИ СЛЕВА, теперь вы хорошо работать :) В КОНСОЛИ И ВЫПОЛНИТЬ СВОЮ ПРОГРАММУ РАБОТЫ FINE... ОТЛИЧНО..