Я пытаюсь получить некоторый опыт с объявлениями переменных в JavaScript.
в следующем коде всякий раз, когда я пытаюсь определить переменную внутри цикла с ключевым словом var, выдается ошибка:
«Uncaught SyntaxError: Идентификатор 'i' уже объявлен".
тогда как, если я использую ключевое слово let (или вообще не использую ключевое слово), проблем не возникает.
Я знаю, что в случае, когда я не использую какое-либо ключевое слово, JavaScript использует ту же самую переменную в глобальной области видимости и перезаписывает ее.
Я также знаю, что переменные, созданные с помощью ключевого слова «let», считаются областью блока, а переменные, созданные с помощью ключевого слова «var» вне функции, считаются глобальными. но я не понимаю этого поведения!
Буду признателен, если кто-нибудь сможет пролить свет на этот вопрос.
этот код:
let i = 78;
console.log(i);
for (var i = 0; i < 4; i++) {
console.log(i);
var insideloop = 100;
}
console.log (я);
выдает эту ошибку: Uncaught SyntaxError: Идентификатор 'i' уже объявлен
но у этого нет проблем, и выдает следующий вывод:
let i = 78;
console.log(i);
for (let i = 0; i < 4; i++) {
console.log(i);
var insideloop = 100;
}
console.log(i);
Результаты:
78
0
1
2
3
78