Фрагменты - Идентификатор уже объявлен
Я написал это во фрагменте 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... ОТЛИЧНО..