Меня зовут Арсений Помазков, я - senior frontend-разработчик, и на этом канале я рассказываю про фронтенд максимально просто и понятно. Моя цель - показать вам, что веб-разработка - это не только перспективно и востребовано, но и очень увлекательно 🔥
Спасибо тебе огромное! Не описать словами насколько я счастлив Долгое время я не мог понял что такое параметры функции, а благодаря тебе наконец-то понял Спасибо огромное!!!
Какая ошибка в консоли? 1) проверить, установлен ли npm (команда npm -v должна выдать версию) 2) посмотреть, что указано в package.json в разделе scripts
map создает новый массив, заполняя его результатами вызова функции-коллбэка для каждого элемента исходного массива, не изменяя исходный массив. Как бы да, мы можем использовать его для копирования, передав аргументов функцию (item)=>item, но это совсем не назначение map. Он используется для создание обновленного массива, когда нам на основе каждого элемента старого массива нужно посчитать/получить какое-то новое значение. Например, как в видео: был массив с объектами, стал массив с элементами разметки
Большое спасибо за такой подробный рецепт блинов!😄 А если серьезно, огромное спасибо за потраченное время и силы, чтобы поделиться своими знаниями! Подача материала❤🔥
Мне это пока рано, но из спортивного интереса заморочился. Мб кому-то поможет, то что напишу далее. Поначалу было непонятно, уйма новых определений, лексические окружения какие-то, способности создавать невидимые объекты и т.п. Лично мне всегда проще, когда используется оригинальное название на английском. В оригинале замыкание - это closure. Это что-то типа закрытия, быть закрытым в отдельном пространстве. Ну, я для себя это трактовал так. Поняв этот момент, мне теперь гораздо легче даётся объяснение со всеми этими лексическими окружениями и прочим. Замыкание, походу, это просто быть закрытым в отдельном пространстве. Далее на это понимание гораздо проще нанизывать уже остальные детали объяснения, понятнее. Более корректное определение: возможность языка создавать приватный контекст для сущности. Лично для меня проблема была в самом названии - "замыкание". Для меня это глагол, процесс соединения одного с другим, а тут речь совсем про другое, про отдельные пространства, области видимости или типа того.
Арсений, здравствуй) Хочу присоединиться к тонне ранее выраженных тебе благодарностей в комментариях, но и также не согласиться с тобой. Надеюсь, ты ответишь мне и если я не права, скажешь почему. Дело в том, что тему окружения я очень долго не могла понять и копала во всех возможных направлениях, чтобы разобраться с ней. И вот что я выяснила: окружение - это доступная из текущей области видимости структура данных, в которой хранятся связи между идентификаторами и переменными из всех внешних областей видимости. И оно может быть как лексическим, так и динамическим. Так вот лексическое окружение, создается как раз не во время вызова функции, а во время ее объявления. То есть компилятор читая и анализируя код первый раз устанавливает связь между переменными и их идентификаторами. Чтобы было наглядней, приведу пример: let value = 2; function showValue() { console.log("Value from showValue: " + value); } function wrapper() { let value = 3; console.log("Value from wrapper: " + value); showValue(); } wrapper(); Повторюсь, когда движок прочитывает и анализирует код в первый раз, он устанавливает связь между переменными и их идентификаторами. Так работает именно лексическое окружение. В динамическом окружении эта связь устанавливается в момент вызова функции. И когда компилятор дошёл до переменной value внутри функции showValue, он не находит внутри функции объявления этой переменной, поэтому он поднимается в родительскую область видимости, находит там нужную переменную и устанавливает с ней зависимость. Всё, это зависимость установлена навсегда, и пофигу откуда мы теперь эту функцию будем вызывать. Поэтому в консоли мы получим значения 3 и 2. Если бы в js было динамическое окружение, тогда было бы важным именно откуда функция вызывается, и в консоли мы бы получили 3 и 3. Так вот всем вышесказанным я хотела сказать, что в замыканиях участвует не лексическое окружение, а область видимости! Именно область видимости создается во время вызова функции, а после того, как вызов был завершен, сборщик мусора удаляет ссылку на эту область, так как на нее больше никто не ссылается, но если на нее будет что-то ссылаться, то эта область видимости удалена не будет, что и происходит в случае с замыканием: на область видимости верхней функции ссылается функция, которую мы из нее вернули) Поэтому у нас есть доступ к переменным, созданным внутри функции. На этом всё)) Если же я не права, пожалуйста, скажи почему)
Большое спасибо! Одно из немногих видео, где я не то что не ускоряла а сделала скорость 0,75х 😄действительно фраза «как читает интерпретатор» что то поменяла в моей голове)