Size: a a a

JavaScript.Ninja

2021 September 25

IK

Illya Klymov in JavaScript.Ninja
Не будет, потому что ничего не поменялось
источник

A

Aleksey in JavaScript.Ninja
И смешно и грустно(
источник

Ф

Филипп in JavaScript.Ninja
Ну просто, если ты смотришь видео, а там много воды и автор неспешно рассказывает, что порой засыпаешь. Ты это хреново усваиваешь. Рассказывать нужно так, чтоб было интересно.

Кстати, не соглашусь с комментами выше, Илью смотрю как и всех ютуберов на обычной скорости, и как по мне смотреть интересно. Некоторые видосы даже по несколько раз пересматривал.
источник

MB

Max Belsky in JavaScript.Ninja
Смотреть на 2х не значит что неинтересно смотреть
источник

V

Viktor in JavaScript.Ninja
+
источник

Ф

Филипп in JavaScript.Ninja
Но что-то же тебя мотивирует сэкономить время. Лично мне не нравится как изменяется голос людей в ускорении. Если человек долго бэкает-мэкает, то ещё понятно что можно паузы мотнуть, а если у человека поставленная речь, то не вижу смысла ускорять, тем более если ролик не более 15 минут
источник

A

Alex in JavaScript.Ninja
время экономит если ускорять. Если не вредит пониманию то самое оно
источник

MB

Max Belsky in JavaScript.Ninja
Почему ты решил что я пользуюсь ускорением чтобы экономить время?
источник

Ф

Филипп in JavaScript.Ninja
Ну как вариант.
источник

MB

Max Belsky in JavaScript.Ninja
Больше похоже на надуманный диалог. Если действительно интересно чем руководствуется человек совершая то или иное действие, всегда можно задать вопрос
источник

Z

Zoukman in JavaScript.Ninja
function createFunctions(n) {

 const callbacks = [];
 for (var i = 0; i < n; i++) {
   callbacks.push(() => {
     return i;
   });
 }

 return callbacks;
};

const xxx = createFunctions(10);
xxx[2](); // 10 instead of 2

почему такое происходит? причём тут hoisting?
ведь у var i есть текущее значение от 0 до 10, и мы используем замыкание, чтобы его запомнить.
но результат вывода будет всегда 10 на любой индекс массива.
каждая функция что, запоминает ссылку на область памяти, вместо реального числа? 🙄
только так я могу это хотя бы обьяснить
источник

MB

Max Belsky in JavaScript.Ninja
hoisting тут при том, что i это var
источник

VK

Vladimir Klimov in JavaScript.Ninja
Переменная i будет 10 навсегда после выполнения цикла
Потому через замыкание вы получаете именно его
Просто представьте, что i объявлена перед началом цикла
источник

DB

Dmitry Bondar in JavaScript.Ninja
вот тут расписано (в решении)
https://learn.javascript.ru/task/make-army
источник

DB

Dmitry Bondar in JavaScript.Ninja
вот тут в 3тем пункте отличие var от let как раз с вашим примером https://learn.javascript.ru/let-const
источник

AC

Ash Crimson in JavaScript.Ninja
А что за видео? Это его новый курс с ботами в телеге и агрессивным маркетингом с 3 жизнями?
источник

Z

Zoukman in JavaScript.Ninja
что-то мне тяжело даётся. не, я как бы понял, но...
меня учили, как я понял, что функция в результате замыкания берёт, как бы, всё необходимое её для жизни - это у них называется backpack
ибо контекст исполнения наружной функции будет завершен, а вместо с ним утрачен и доступ к этой переменной. поэтому, это берёт как с собой как бы, в приватное хранилище.
соот-но когда мы простим вернуть функцию индекс, она имеет дело не с максимальным, а с текущим значением.

ведь это прелесть замыкания.
function adder(x) {
 const unique = x;

 return (y) => {
     return unique + y;
 }
}

const add1 = adder(10);
const add2 = adder(100);

add1(1) // 11
add2(1) // 101

тут переменная одна и та же, но выдает разный результат. почему? потому, что внутренняя функция притащила эту переменную с собой, с её текущим значением в тот момент.

так вот, var i тоже имел текущее значение, он ведь не сразу стал 10, верно? но запоминания не произошло. и я в упор не могу понять почему.

такое ощущение, что оно запомнило ссылку на область памяти. и когда там var i стал 10, то оно и вывело соот-щий резульат
источник

DB

Dmitry Bondar in JavaScript.Ninja
функци запомнила не число а ссылку на переменную, переменная же у вас равна 10
источник

DB

Dmitry Bondar in JavaScript.Ninja
когда вы вызываете функцию она ищет переменную i -> находит ее в замыкании и возвращает ее значение - 10
источник

DB

Dmitry Bondar in JavaScript.Ninja
если поменяете var на let то будет работать как ожидаете
источник