Maksim
С массивом-то исходным по-прежнему произойдет ничего
потому что числа немутабельны, забей массив объектами и изменяй их
Winni
Прям как мозила говорит, вот неожиданно то!
Sergey
прям как нубы переписываетесь
Sergey
пздц
Andrey 😼
потому что числа немутабельны, забей массив объектами и изменяй их
От этого же не изменится значение переменной
Winni
прям как нубы переписываетесь
Да че ты, ты там был, там поле боя уже сутки.
Andrey 😼
Я сейчас не совсем понимаю, что мне пытаются доказать, если честно
Maksim
От этого же не изменится значение переменной
что такое значение переменной? есть данные, есть переменная на них указывающая
Maksim
что именно ты хочешь изменить?
Andrey 😼
Я - ничего, я пытаюсь показать, что вне зависимости от формулировки, указанной в MDN, вообще без разницы что использовать в цикле
Andrey 😼
let или const
Andrey 😼
Потому что вообще бессмысленно как-то менять значение этой переменной
Andrey 😼
Как бы, что эту переменную меняй, что не меняй
А это - наглядная иллюстрация сей бессмысленности
Maksim
А это - наглядная иллюстрация сей бессмысленности
почитай какой-нибудь хороший учебник по js
Andrey 😼
Спасибо, я знаю, что это не должно было сработать)
Maksim
в примере в i будет копия значения массива, а не ссылка на элемент
Anonymous
Я не понимаю, почему реализация цикла в языке подразумевает создание переменной на каждой итерации заного, нежели перезапись существующей? Это не звучит эффективно, с точки зрения производительности и я бы хотел узнать аргументацию к этой архитектурной особенности. Возможно это позволит мне понять, как лучше делать какие-то вещи с помощью этого языка
파쇼크
эх вот бы щас писать эффективный код на for of
파쇼크
хочешь эффективности – используй более управляемые, более никоуровневые конструкции
Andrey 😼
в примере в i будет копия значения массива, а не ссылка на элемент
Именно это я пытался показать. Еще раз говорю, этот пассаж был к теме «без разницы, let или const в цикле, все равно нет ситуации, когда был бы смысл менять эту переменную»
Anonymous
Ну т.е. for of и for in - это сахар, который bad practice для производительности?
Anonymous
Ок. Но почему его сделали именно таким? Почему было бы не сделать в этих циклах обязательное объявление через let и не перезаписывать его?
Andrey 😼
Разве это не проблема JIT?
Andrey 😼
По-моему, это как раз его задача
Andrey 😼
Делать хорошо
파쇼크
Ок. Но почему его сделали именно таким? Почему было бы не сделать в этих циклах обязательное объявление через let и не перезаписывать его?
потому что с конст заебись – ты не сможешь переписать переменную с элекментом iterable внутри тела цикла
Andrey 😼
там не копия тащемта
Если бы это была не копия, изменение значения влияло бы на исходный массив
Kirill
боже почитайте про примитивы и обьекты в жс и как они передаются
Anonymous
потому что с конст заебись – ты не сможешь переписать переменную с элекментом iterable внутри тела цикла
Нет профита, даже если бы я переписал переменную созданную через let, она не изменила бы массив
Kirill
можно чуть больше конкретики
в учебнике много конкретики. примитивы по значению - обьекты по ссылке... если в массиве будет обьект, то в i будет ссылка на обьект в массиве и изменив ее изменится и обьект в массиве
Anonymous
Нет профита, даже если бы я переписал переменную созданную через let, она не изменила бы массив
А если бы это был массив объектов и я бы мутировал объект, const бы это не предотвратил, т.к. я мутирую объект, а не ссылку меняю
Andrey 😼
Нет профита, даже если бы я переписал переменную созданную через let, она не изменила бы массив
Зато с const ты сразу увидишь, что зачем-то меняешь переменную цикла, а не то, что действительно хотел бы поменять
Andrey 😼
Если константа не ссылается на объект, само собой
Kirill
А это кто-то отрицал?
чудовищные разоблачения
Kirill
Andrey 😼
Это все равно будет новая переменная, содержащая ссылку на объект. И если ты сошлешь её на другой объект, исходный массив не изменится
Andrey 😼
А теперь почитай выше объяснения к этому куску
Kirill
а так это проблема jit компилятора
Kirill
я поняяяяяяял
Andrey 😼
Это вообще про другое был комментарий
Andrey 😼
http://eslint.org/docs/rules/no-unmodified-loop-condition Вот правильный ответ на весь этот спор :)
Andrey 😼
А, нет, вру, похоже не то правило
Andrey 😼
Есть правило eslint’а, которое предупреждает, если попытаться присвоить переменной цикла иное значение?
Anonymous
Ммм? Мне линтер советует const использовать
Andrey 😼
Ммм? Мне линтер советует const использовать
Ну, да, если использовать const, то он тут же будет орать при попытке переприсвоить
Anonymous
Неа
Anonymous
Скрин из шторма с линтером
Anonymous
Собственно после его подсказки я и задался вопросом
Andrey 😼
Andrey 😼
Anonymous
А, понял, ну да, все верно
Andrey 😼
У меня орёт, мб у тебя правило выключено?
Anonymous
Я же не переписываю, а читаю только
Darth
Darth
в Node REPL та же хрень)
Andrey 😼
prefer-const вполне подходит под это описание, да
Или нет. Он кричит на is never reassigned, но если в том же теле цикла изменить значение, то перестает кричать и не предлагает заменить на const
Sergey
так это норм
Sergey
а давно у регулярок есть поле .source ?
Sergey
Darth
Как минимум в 2013 оно уже точно было
ixplo
уже оценил )
Misha
Всем привет, нужна помощь с заданием в универе, нужна статистика по среднему количеству фронтендеров в компаниях России. Собственно, сколько у вас в компании фронтенд разработчиков? Заранее спасибо
ixplo
приходится или имена менять, или f5 )