Size: a a a

JavaScript — русскоговорящее сообщество

2020 March 19

VP

Vitalii Ponich in JavaScript — русскоговорящее сообщество
в данном случае let i - вызовется вначале выполнения цикла и дальше будет передаваться последующей итерации
источник

VP

Vitalii Ponich in JavaScript — русскоговорящее сообщество
источник

РД

Рустам Демонов in JavaScript — русскоговорящее сообщество
Vitalii Ponich
в данном случае let i - вызовется вначале выполнения цикла и дальше будет передаваться последующей итерации
Имеется ввиду новая i или та же самая i, если будет передаваться та же самая i, то это будет равносильно этому
for (var i = 0; i < links.length; i++) {
  links[i].onclick = function() {
     alert(i);
  }
}
источник

VP

Vitalii Ponich in JavaScript — русскоговорящее сообщество
Рустам Демонов
Имеется ввиду новая i или та же самая i, если будет передаваться та же самая i, то это будет равносильно этому
for (var i = 0; i < links.length; i++) {
  links[i].onclick = function() {
     alert(i);
  }
}
Будет передаваться та же самая переменная i. Однако равносильно не будет, т.к. у тебя во втором случае переменная объявлена через var
источник

VP

Vitalii Ponich in JavaScript — русскоговорящее сообщество
var сделает переменную доступной глобально
источник

VP

Vitalii Ponich in JavaScript — русскоговорящее сообщество
и каждый вызов links[i].onclick будет выводить одно и то же
источник

VP

Vitalii Ponich in JavaScript — русскоговорящее сообщество
с let в alert запишется замыкание на переменную в области видимости итерации
источник

VP

Vitalii Ponich in JavaScript — русскоговорящее сообщество
а с var alert будет ссылаться на переменную в глобальной области видимости или в области видимости функции
источник

РД

Рустам Демонов in JavaScript — русскоговорящее сообщество
Vitalii Ponich
а с var alert будет ссылаться на переменную в глобальной области видимости или в области видимости функции
Вот насчет var, я понимаю, а насчет let так и не могу допереть. Сейчас буду рисовать:D. Спасибо
источник

VP

Vitalii Ponich in JavaScript — русскоговорящее сообщество
Рустам Демонов
Вот насчет var, я понимаю, а насчет let так и не могу допереть. Сейчас буду рисовать:D. Спасибо
все просто: у var - область видимости ограничивается функцией, у let - блоком - {}
источник

РД

Рустам Демонов in JavaScript — русскоговорящее сообщество
Vitalii Ponich
все просто: у var - область видимости ограничивается функцией, у let - блоком - {}
Это я понял, мне хочется узнать как работает цикл for внутри, на MDN этого нет, в любом случае спасибо
источник

A

Alex in JavaScript — русскоговорящее сообщество
Рустам Демонов
Это я понял, мне хочется узнать как работает цикл for внутри, на MDN этого нет, в любом случае спасибо
На каждой итерации создается новая переманная
источник

РД

Рустам Демонов in JavaScript — русскоговорящее сообщество
Alex
На каждой итерации создается новая переманная
с новым значением?
источник

VP

Vitalii Ponich in JavaScript — русскоговорящее сообщество
Alex
На каждой итерации создается новая переманная
переменная-счетчик цикла создается перед первой итерацией, а не на каждой
источник

РД

Рустам Демонов in JavaScript — русскоговорящее сообщество
Vitalii Ponich
переменная-счетчик цикла создается перед первой итерацией, а не на каждой
источник

РД

Рустам Демонов in JavaScript — русскоговорящее сообщество
С var все понятно, она создаётся в глобальной области, поэтому на каждой итерации эта та же переменная. А вот у let блочная область видимости, значит на каждой итерации это уже другая i, своя.
Главный Вопрос: Как на каждой итерации, i понимает какое у неё должно быть значение, если это другая i
источник

VP

Vitalii Ponich in JavaScript — русскоговорящее сообщество
Рустам Демонов
С var все понятно, она создаётся в глобальной области, поэтому на каждой итерации эта та же переменная. А вот у let блочная область видимости, значит на каждой итерации это уже другая i, своя.
Главный Вопрос: Как на каждой итерации, i понимает какое у неё должно быть значение, если это другая i
принимает значение i из предыдущей итерации
источник

VP

Vitalii Ponich in JavaScript — русскоговорящее сообщество
и да, я был не прав с определением переменных в цикле for для let
источник

РД

Рустам Демонов in JavaScript — русскоговорящее сообщество
Vitalii Ponich
принимает значение i из предыдущей итерации
Вот это мне и нужно, но как вы это узнали?
источник

VP

Vitalii Ponich in JavaScript — русскоговорящее сообщество
Рустам Демонов
Вот это мне и нужно, но как вы это узнали?
источник