Сохранен 54
https://2ch.hk/b/res/192110048.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

JS вопрос. Вижу что с появлением ES6, появилось

 Аноним 26/02/19 Втр 02:02:37 #1 №192110048 
js.png
JS вопрос. Вижу что с появлением ES6, появилось жесткое правило : либо const, либо let. И у меня такой вопрос. Вот есть цикл for и в заголовке мы по новым правилам пользуемся let i , ну и как обычно. В JS учебнике сказано, что на каждую итерацию создается своя новая переменная. Правильно ли я понимаю, что мы каждый раз выделяем новое место под туже переменную с новым значением и каждый раз её выкидываем (если это не замыкание)? И если это так, то разумно предположить, что это явно медленнее чем обычный var, который будет просто менять значение в конкретном участке памяти.
Аноним 26/02/19 Втр 02:02:54 #2 №192110053 
бамп
Аноним 26/02/19 Втр 02:03:37 #3 №192110067 
бамп
Аноним 26/02/19 Втр 02:03:53 #4 №192110075 
бамп
Аноним 26/02/19 Втр 02:04:12 #5 №192110078 
бамп
Аноним 26/02/19 Втр 02:04:20 #6 №192110081 
Юзай вар и не выебывайся.
Аноним 26/02/19 Втр 02:04:31 #7 №192110085 
бамп
Аноним 26/02/19 Втр 02:05:44 #8 №192110108 
>>192110081
так я бы и продолжил, но у меня вот буквально недавно товарищ устроился и ему сразу сказали: var забываем, есть только let и const.
Аноним 26/02/19 Втр 02:06:05 #9 №192110117 
>>192110048 (OP)
Если бы она каждую операцию новая сохранялась, то как бы она инкрементировалась бы? Тогда любой цикл for стал бы бесконечным, не?

Алсо старые браузеры соснут у скриптов со всякими хипстерскими let?
Аноним 26/02/19 Втр 02:06:13 #10 №192110123 
бамп
Аноним 26/02/19 Втр 02:06:32 #11 №192110128 
>>192110108
>и ему сразу сказали: var забываем, есть только let и const.
Чем обусловлено? Просто потому что МОДНО?
Аноним 26/02/19 Втр 02:08:19 #12 №192110169 
>>192110117
>Если бы она каждую операцию новая сохранялась,
Если бы она каждую операцию новая создавалась
slowfix
Аноним 26/02/19 Втр 02:08:32 #13 №192110173 
>>192110048 (OP)
Все равно один раз объявится. Алсо, не помню, когда последний раз писал обычный цикл на js.
Аноним 26/02/19 Втр 02:09:07 #14 №192110184 
>>192110128
Ну их не просто так ввели - чтобы коленку себе не прострелить.
Аноним 26/02/19 Втр 02:09:28 #15 №192110192 
>>192110128
> >и ему сразу сказали: var забываем, есть только let и const.
> Чем обусловлено? Просто потому что МОДНО?

А такая причина очень распространена. Вместо практической пользы любят пускать в ход всякую дичь, лишь бы стильно и не как у всех. На работе нахуй.
Аноним 26/02/19 Втр 02:09:43 #16 №192110195 
>>192110128
Потому что у вар естт опасность в виде случайного переопределения
Аноним 26/02/19 Втр 02:10:21 #17 №192110206 
>>192110048 (OP)
ты можешь безопасно создавать новые функции внутри цикла for:

for(let i = 0; i < +Infinity; i++) {
doSomething(() => {
console.log(`Finished ${i}`);
});
}

с var точно такой же код не прокатит, придётся создать новое замыкание:

for(var i = 0; i < +Infinity; i++) {
(it => {
doSomething(() => {
console.log(`Finished ${it}`);
});
})(i);
}
Аноним 26/02/19 Втр 02:10:27 #18 №192110207 
>>192110117
>Алсо старые браузеры соснут у скриптов со всякими хипстерскими let?

Почти 90% поддержки
https://caniuse.com/#search=let
Аноним 26/02/19 Втр 02:12:03 #19 №192110240 
>>192110192
Чертовы смузихлёбы.
Аноним OP 26/02/19 Втр 02:15:07 #20 №192110307 
>>192110206
я сохранил твой ответ и вернусь к нему позже. Похоже у меня не хватает еще понимания или опыта.
Аноним 26/02/19 Втр 02:17:54 #21 №192110376 
Untitled.png
>>192110206
Аноним 26/02/19 Втр 02:18:23 #22 №192110392 
15387566838440.jpg
Стоит ли учить Vue или не выебываться и остановиться на реакте?
Аноним 26/02/19 Втр 02:19:47 #23 №192110426 
>>192110048 (OP)
js-не человек
Аноним 26/02/19 Втр 02:19:50 #24 №192110428 
>>192110392
>Vue
>Хуе
Хипстер дохуя? Смузи хлебаешь?
Аноним 26/02/19 Втр 02:20:21 #25 №192110441 
>>192110426
Это язык, ты, тупой гуманитарий.
Аноним 26/02/19 Втр 02:20:31 #26 №192110445 
>>192110392
Его быстрее выучить, чем спрашивать.
Аноним 26/02/19 Втр 02:21:29 #27 №192110470 
image.png
>>192110376
Пожалуйста не пиши на двач, если ты такой тупой
Аноним 26/02/19 Втр 02:21:52 #28 №192110477 
>>192110441
Это не язык людей, значит те кто его используют - не люди.
Аноним 26/02/19 Втр 02:23:09 #29 №192110502 
>>192110428
Недавно подвороты начал делать, но это из-за того что голодаю и штаны теперь спадают
Скорее всего буду самым цисгендерным в коллективе
Аноним 26/02/19 Втр 02:30:10 #30 №192110629 
Аноны, есть смысл учить js, если не хочу писать веб, а хочу удобный язык под разные сложные штуки, в частности хочу освоить ИИ и разные сложные штуки
Аноним 26/02/19 Втр 02:30:59 #31 №192110650 
>>192110629
python - стандарт
Аноним 26/02/19 Втр 02:31:03 #32 №192110653 
>>192110629
Тебе маня-мирок нужен, а не язык программирования.
Аноним 26/02/19 Втр 02:31:06 #33 №192110655 
>>192110629
Тебе в питон.
Аноним 26/02/19 Втр 02:32:33 #34 №192110684 
>>192110629
Нет. Javascript для веба.
Аноним 26/02/19 Втр 02:33:34 #35 №192110697 
>>192110655
В питон надо тем, кто хочет разочароваться в программировании, не начиная.
Аноним 26/02/19 Втр 02:35:58 #36 №192110741 
Screenshot 2019-02-26 at 02.34.21.png
>>192110655
Написал hello world на питоне. Как теперь создать свой ИИ?
Аноним 26/02/19 Втр 02:37:33 #37 №192110774 
428542.jpg
>>192110741
Без задней мысли
Аноним 26/02/19 Втр 02:38:54 #38 №192110797 
>>192110048 (OP)
зависит от JS движка и как он оптимизирует на самом деле. Движки умные так что вряд ли они будут создавать новую переменную для каждой итерации лул, так что не парься.
Аноним 26/02/19 Втр 02:41:33 #39 №192110855 
>>192110048 (OP)
Смотри, цикл for состоит из трёх фаз:
for ([инициализация]; [проверка]; [модификация])
Не ебу, откуда ты взял создание переменной на каждую итерацию, если из самого названия "инициализация" понятно, что она проходит только один раз при старте цикла?
Аноним 26/02/19 Втр 02:44:14 #40 №192110905 
>>192110128
let видна в пределах фигурных скобок, а за пределами них автоматически уходит в сборщик мусора
const - то же самое, но нельзя перезаписывать
var видна во всём коде практически, в том числе до определения переменной да, это так
Аноним OP 26/02/19 Втр 02:44:43 #41 №192110916 
>>192110855
https://learn.javascript.ru/let-const 3 пункт
Аноним 26/02/19 Втр 02:45:57 #42 №192110933 
>>192110392
Учи реакт, с ним ещё сможешь клепать приложения через реакт натив
Аноним 26/02/19 Втр 02:48:07 #43 №192110977 
>>192110048 (OP)
Ты, видимо, читаешь учебник на ангельском через переводчик. Первая часть цикла for выполняется один раз при входе в цкил.
Другое дело, что с вложенными циклами с оговоркой и там действительно создается новая переменная, но для каждой итерации цикла, в которой он был вложен.
Аноним 26/02/19 Втр 02:51:39 #44 №192111042 
>>192110916
>При объявлении переменной в цикле for(let …) – она видна только в этом цикле. Причём каждой итерации соответствует своя переменная let.

Где там написано, что на каждую итерацию создается одна переменная?
Аноним OP 26/02/19 Втр 02:54:52 #45 №192111110 
image.png
>>192111042
Аноним 26/02/19 Втр 02:56:05 #46 №192111133 
15505064034530.png
помогите опознать шрифт
Аноним 26/02/19 Втр 02:57:42 #47 №192111160 
>>192110048 (OP)
Сделай бенчмарк, это просто. Никакой старый браузер не соснет от лет или конст, после транспайлера лет превратится в вар
Аноним OP 26/02/19 Втр 03:05:31 #48 №192111303 
image.png
>>192110977
>>192111042

Вот пример из книжки. Здесь в массив пушатся функции с i на текущий момент. Возвращается массив с функциями, каждая из которых ссылается на своё лексическое i, что равносильно тому, что каждая итерация создает свою i и не чистит её из-за замыкания. Разумно предположить, что обычный цикл также каждый раз инициализирует i и так же её уничтожает.
Аноним 26/02/19 Втр 03:08:24 #49 №192111360 
Блядь, я нихуя не могу понять, что значит "Возвращать". Что это? Дает результат? Или что? Почему именно так называется?
Аноним 26/02/19 Втр 03:08:39 #50 №192111367 
image.png
>>192110916
Проебался, признаю. В любом случае, в болене-менее современном браузере нет разницы: https://stackoverflow.com/a/40449532
Асло лиса
Аноним 26/02/19 Втр 03:09:55 #51 №192111393 
>>192111110
В теле цикла ты получаешь возможность работать с переменной благодаря тому, что в каждой новой итерации создается независимая переменная, значение которой копируется в переменную цикла в конце каждой итерации. Кури экму, еба.
http://www.ecma-international.org/ecma-262/7.0/index.html#sec-for-statement-runtime-semantics-labelledevaluation
Аноним 26/02/19 Втр 03:20:38 #52 №192111618 
>>192111360
Просто выдает результат вычисления. В джс все операторы возвращают значение, даже запятая и присваивание. Функции тоже. Даже пустая вернет undefined.
Аноним 26/02/19 Втр 03:21:04 #53 №192111625 
1-242.jpg
>>192111360
Исторически - класть на стек и убегать.
Аноним OP 26/02/19 Втр 03:30:54 #54 №192111819 
>>192111367
>>192111393
благодарю, буду мотать на усы
comments powered by Disqus

Отзывы и предложения