
Пашок
06.07.2017
12:47:45
он и инициируется каждый раз

Andrey ?
06.07.2017
12:47:46

Artyom
06.07.2017
12:47:50
Не правильная формулировка на mdn

Пашок
06.07.2017
12:48:02
так поправь)

Google

Roman
06.07.2017
12:48:02
может перевод подкачал

Winni
06.07.2017
12:48:04
Это не докозательство, поменяй внутри for of значение i и провер мутировал ли массив. Если не мутировал, значит присваивается, если мутировал, значит баг.

Roman
06.07.2017
12:48:12
громкое разоблачение получилось

Artyom
06.07.2017
12:48:24
На каждом шаге итерации создается переменная с значением нового свойства объекта.
Надо, типо того

Winni
06.07.2017
12:48:48
>On each iteration a value of a different property is assigned to variable.

Andrey ?
06.07.2017
12:48:50

Artyom
06.07.2017
12:48:57
В англ тоже assigned

Winni
06.07.2017
12:49:06
>You can use const instead of let too, if you don't reassign the variable inside the block.

Andrey ?
06.07.2017
12:49:35
А при каких условиях в данном случае будет разница?

Winni
06.07.2017
12:49:42
Значит на каждой итерации переменная уничтожается и создается

Andrey ?
06.07.2017
12:49:48
Между «присваивается» и «пересоздается и присваивается»?

Artyom
06.07.2017
12:49:50

Google

Winni
06.07.2017
12:50:02

Andrey ?
06.07.2017
12:50:12
А между двумя формулировками

Winni
06.07.2017
12:51:07
Не, не между let и const
Ну, при лет ты можешь мутировать i в теле цикла, а при кост, если попытаешься присвоить ей другое знаечение, выдаст ошибку.

Andrey ?
06.07.2017
12:51:21

Artyom
06.07.2017
12:51:28

Andrey ?
06.07.2017
12:51:32
Я не могу понять, до чего доебался тот человек с медведём на аватарке

Artyom
06.07.2017
12:52:09
Хотя впервом случае m останется в текущем скоупе
Вопрос в производительности. Интересно почему сделано так, как сделано

Winni
06.07.2017
12:52:32
Ну а зачем тебе в цикле переменная которая не меняется, а ты в нее новое значение пихаешь?
Это очень нереальный кейс

Andrey ?
06.07.2017
12:53:48
Зачем вообще менять значение этой переменной

Artyom
06.07.2017
12:54:01
Вот именно
Зачем такой функционал заложили?

Andrey ?
06.07.2017
12:54:19
Какой?

Artyom
06.07.2017
12:54:24
Не экономичнее было бы сделать 1 раз создание через let?

Andrey ?
06.07.2017
12:54:34
> js
> экономичнее

Artyom
06.07.2017
12:54:35
А не каждый раз создание на каждой итерации

Andrey
06.07.2017
12:54:41

Google

Artyom
06.07.2017
12:54:54
Как бы в обычном for объявление переменной единожды происходит

Winni
06.07.2017
12:55:00

Andrey ?
06.07.2017
12:55:27

Andrey
06.07.2017
12:55:36
Я тебе больше скажу, что ты не можешь предугадать сколько итераций будет, потому что 100% будет развертка массива какая-нибудь.

Winni
06.07.2017
12:55:37
Чтобы можно было использовать конст, но чтобы в ногу себе не стреляли.

Artyom
06.07.2017
12:55:48
это т.е. ты пишешь for(;let a, a < 0; a++){} странная конструкция
Ну почти такк

Andrey
06.07.2017
12:56:26
Странные вы вопросы обсуждаете. Это вроде как pro)

Andrey ?
06.07.2017
12:56:57

Winni
06.07.2017
12:57:02
Ну так суть языка обсуждаем, а не как форму на сервере парсить.

Roman
06.07.2017
12:57:50
http://www.ecma-international.org/ecma-262/6.0/index.html#sec-for-in-and-for-of-statements-static-semantics-boundnames

Andrey
06.07.2017
12:58:02
О да, давай сделаем ещё одно место для потенциальных ошибок.

Сергей
06.07.2017
12:58:08

Пашок
06.07.2017
12:58:21
наконец то нормальные ответы

Andrey ?
06.07.2017
12:58:24

Winni
06.07.2017
12:58:26
ЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭ
ты для чего массив перебираешь, наверно чтобы действия над его элементами производить?

Andrey ?
06.07.2017
12:58:42
Я показываю, что хоть заменяйся эту переменную, все равно ничего не произойдет с массивом
И что туда хоть let, хоть const пихай
Суть особо не изменится

Winni
06.07.2017
12:59:13

Google

Andrey ?
06.07.2017
12:59:25
Я понимаю как оно устроено)

Winni
06.07.2017
12:59:38

Сергей
06.07.2017
12:59:46

Andrey ?
06.07.2017
12:59:52
С массивом-то исходным по-прежнему произойдет ничего

Winni
06.07.2017
13:00:06

Andrey ?
06.07.2017
13:00:15
Поэтому и вообще пофиг, что пихать в for

Winni
06.07.2017
13:00:37

Maksim
06.07.2017
13:00:45

Admin
ERROR: S client not available

Winni
06.07.2017
13:00:49
Прям как мозила говорит, вот неожиданно то!

Сергей
06.07.2017
13:01:02
прям как нубы переписываетесь
пздц

Andrey ?
06.07.2017
13:01:07

Winni
06.07.2017
13:01:35

Сергей
06.07.2017
13:01:52

Andrey ?
06.07.2017
13:02:07
Я сейчас не совсем понимаю, что мне пытаются доказать, если честно

Maksim
06.07.2017
13:02:41
что именно ты хочешь изменить?

Andrey ?
06.07.2017
13:03:55
Я - ничего, я пытаюсь показать, что вне зависимости от формулировки, указанной в MDN, вообще без разницы что использовать в цикле

Google

Andrey ?
06.07.2017
13:04:00
let или const
Потому что вообще бессмысленно как-то менять значение этой переменной
А это - наглядная иллюстрация сей бессмысленности

Maksim
06.07.2017
13:07:37

Andrey ?
06.07.2017
13:07:51
Спасибо, я знаю, что это не должно было сработать)

Сергей
06.07.2017
13:08:23

Maksim
06.07.2017
13:08:31
в примере в i будет копия значения массива, а не ссылка на элемент

Artyom
06.07.2017
13:08:38
Я не понимаю, почему реализация цикла в языке подразумевает создание переменной на каждой итерации заного, нежели перезапись существующей? Это не звучит эффективно, с точки зрения производительности и я бы хотел узнать аргументацию к этой архитектурной особенности. Возможно это позволит мне понять, как лучше делать какие-то вещи с помощью этого языка

Пашок
06.07.2017
13:09:04
эх вот бы щас писать эффективный код на for of
хочешь эффективности – используй более управляемые, более никоуровневые конструкции

Andrey ?
06.07.2017
13:09:59

Artyom
06.07.2017
13:10:09
Ну т.е. for of и for in - это сахар, который bad practice для производительности?

Andrey ?
06.07.2017
13:10:16

Пашок
06.07.2017
13:10:22

Кирилл
06.07.2017
13:10:55

Artyom
06.07.2017
13:11:09
Ок. Но почему его сделали именно таким? Почему было бы не сделать в этих циклах обязательное объявление через let и не перезаписывать его?

Andrey ?
06.07.2017
13:11:18
Разве это не проблема JIT?

Maksim
06.07.2017
13:11:31

Andrey ?
06.07.2017
13:11:34
По-моему, это как раз его задача
Делать хорошо

Пашок
06.07.2017
13:12:10