Почему вложенный цикл выдаёт различные результаты когда работает с локальными переменными и глобальными?
Почему вложенный цикл выдаёт различные результаты, когда работает с (идентичными) локальными переменными и глобальными в js?
- Вариант
let i = 0;
let j = 0;
for (; i < 3; ++i) {
for (; j < 3; ++j) {
alert(`${i},${j}`);
}
}
Выдаст результаты: 1)0,0 2)0,1 3)0,2
- Вариант
for (let i = 0; i < 3; ++i) {
for (let j = 0; j < 3; ++j) {
alert(`${i},${j}`);
}
}
Выдаст результаты: 1)0,0 2)0,1 3)0,2 4)1,0 5)1,1 6)1,2 7)2,0 8)2,1 9)2,2
Ответы (1 шт):
Автор решения: HTO HOT
→ Ссылка
Дело в том, что переменная j не обнуляется после итераций цикла с переменной i.
С помощью дебагера это несложно проверить. На этом сайте конечно дебагер не запускается, но вы можете скопировать код и попробовать у себя на проекте или даже просто в консоли.
let i = 0;
let j = 0;
debugger;
for (; i < 3; ++i) {
for (; j < 3; ++j) {
console.log(`${i},${j}`);
}
}