Forwarded from ТочкаGPT
Этот код представляет собой пример использования замыкания в JavaScript.
Функция `makeMultiplier` является фабричной функцией, которая принимает один аргумент `factor`. Она возвращает другую функцию (анонимную функцию), которая имеет доступ к переменной `factor` даже после того, как `makeMultiplier` завершает свое выполнение. Это возможно благодаря замыканию.
Возвращаемая функция, которую мы присваиваем переменным `double` и `triple`, принимает один аргумент `number`. Она умножает этот аргумент на значение `factor`, которое было передано в `makeMultiplier` при ее вызове, и возвращает результат.
Когда мы вызываем `double(5)`, это означает, что мы передаем число 5 в функцию, которую вернула `makeMultiplier(2)`. Внутри этой функции значение `factor` равно 2, поэтому результатом будет 2 * 5 = 10.
Аналогично, при вызове `triple(4)` мы передаем число 4 в функцию, которую вернула `makeMultiplier(3)`. Внутри этой функции значение `factor` равно 3, поэтому результатом будет 3 * 4 = 12.
Таким образом, код выводит в консоль числа 10 и 12.
Функция `makeMultiplier` является фабричной функцией, которая принимает один аргумент `factor`. Она возвращает другую функцию (анонимную функцию), которая имеет доступ к переменной `factor` даже после того, как `makeMultiplier` завершает свое выполнение. Это возможно благодаря замыканию.
Возвращаемая функция, которую мы присваиваем переменным `double` и `triple`, принимает один аргумент `number`. Она умножает этот аргумент на значение `factor`, которое было передано в `makeMultiplier` при ее вызове, и возвращает результат.
Когда мы вызываем `double(5)`, это означает, что мы передаем число 5 в функцию, которую вернула `makeMultiplier(2)`. Внутри этой функции значение `factor` равно 2, поэтому результатом будет 2 * 5 = 10.
Аналогично, при вызове `triple(4)` мы передаем число 4 в функцию, которую вернула `makeMultiplier(3)`. Внутри этой функции значение `factor` равно 3, поэтому результатом будет 3 * 4 = 12.
Таким образом, код выводит в консоль числа 10 и 12.
Forwarded from GigaChat
Этот код создает две функции: `double` и `triple`, которые оба являются обертками для другой функции. Эта внутренняя функция принимает число и возвращает результат умножения этого числа на фактор, который был передан в момент создания обертки.
Когда мы вызываем `double(5)` или `triple(4)`, код создает новую функцию, которая умножает входное число на 2 или 3 соответственно. Затем он возвращает результат этого умножения. Когда мы выводим результат в консоль, мы видим ожидаемые значения: 10 и 12.
Таким образом, этот код демонстрирует, как можно создавать более сложные функции, которые могут быть использованы для упрощения более сложных задач программирования.
Когда мы вызываем `double(5)` или `triple(4)`, код создает новую функцию, которая умножает входное число на 2 или 3 соответственно. Затем он возвращает результат этого умножения. Когда мы выводим результат в консоль, мы видим ожидаемые значения: 10 и 12.
Таким образом, этот код демонстрирует, как можно создавать более сложные функции, которые могут быть использованы для упрощения более сложных задач программирования.
Итог такой — ответ ChatGPT более полный и понятный, он буквально разжёвывает объяснение. GigaChat (если кто не знает, это генеративка от Сбера), дал хоть и правильный, но поверхностный ответ, который на собесе бы, конечно, прокатил, но если вы хотите разобраться в вопросе, то интерпретация ChatGPT здесь выигрывает.
Вообще, я заметил, что прежде, чем что-то гуглить, я сначала иду за объяснением в ChatGPT, и Chat, в большинстве случаев, даёт не только более релевантный ответ, чем Google, но и экономит моё время.
————————————————————————
Так что гуглу уже стоит начать беспокоиться)) а они всё переносят дату выхода Gemini...
Вообще, я заметил, что прежде, чем что-то гуглить, я сначала иду за объяснением в ChatGPT, и Chat, в большинстве случаев, даёт не только более релевантный ответ, чем Google, но и экономит моё время.
————————————————————————
Так что гуглу уже стоит начать беспокоиться)) а они всё переносят дату выхода Gemini...
ChatGPT vs Gemini?
Буквально вчера в своём посте вспоминал уходящий в прошлое google-поиск и приходящий ему на смену ChatGPT, а сегодня прочитал в новостях, что Google показал убийцу ChatGPT — Gemini (похоже, кто-то в Google читает мой блог😐 ). Gemini обходит самый мощный ChatGPT-4v по всем показателям и бла-бла-бла. Ну, я сразу отправился за пруфами в Bard, куда и должны интегрировать Gemini...правда, только через неделю и то, если не перенесут, о чём тоже мелькали новости))
Буквально вчера в своём посте вспоминал уходящий в прошлое google-поиск и приходящий ему на смену ChatGPT, а сегодня прочитал в новостях, что Google показал убийцу ChatGPT — Gemini (похоже, кто-то в Google читает мой блог
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Решил, ради эксперимента, скормить Bard такую задачку на замыкание, какую давал ChatGPT и GigaChat из предыдущего поста. Вот, что ответил Bard👇
GigaChat Pro
Я не успеваю следить за новостями😂 буквально вчера был анонс от Google, а сегодня Сбер выкатил новую версию своей нейронки GigaChat Pro. В обновлённой версии 29 млрд параметров против 13 млрд в старой. Хотя, это всё-равно довольно скромно по сравнению с ChatGPT, в третьей версии которого было 175 млрд параметров, а в четвёртой — уже 1,8 трлн! 😱
По классике протестил все 3 нейронки, которыми пользуюсь, таким запросом: "Объясни, как разрешить использование бота только после подписки на телеграм-канал? бот уже создан на javanoscript с использованием библиотеки grammy".
Сюрприза не произошло. Все выдали примерно одинаковый код, но Bard и ChatGPT дали более подробное объяснение.
Я не успеваю следить за новостями
По классике протестил все 3 нейронки, которыми пользуюсь, таким запросом: "Объясни, как разрешить использование бота только после подписки на телеграм-канал? бот уже создан на javanoscript с использованием библиотеки grammy".
Сюрприза не произошло. Все выдали примерно одинаковый код, но Bard и ChatGPT дали более подробное объяснение.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Увидел у ZIP LOG такую ёлочку на Python, решил поддержать новогоднее настроение, сваяв такую же на JS 👨💻
Без помощи chatGPT🤖 не обошлось)) Я уже решал подобную задачку на каком-то собесе и в code wars, но там были только звёздочки)) с добавлением палочек возникли сложности😅
Без помощи chatGPT
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🌐 Привет, друзья! Сегодня я хочу рассказать вам о захватывающей технологии, которая меняет наше представление об интернете — Web3. 🚀
🔍 Но прежде, чем мы погрузимся в мир Web3, давайте вспомним, что такое Web2. Веб-приложения, которые мы используем каждый день, такие как социальные сети, почта или онлайн-магазины, основаны на Web2. В этой модели все данные и контент хранятся на серверах корпораций, которым принадлежит эта информация. Получается, пользователи зависят от этих компаний.
💡 Вот где на сцену выходит Web3! Эта новая технология стремится изменить это положение дел. В отличие от Web2, где данные и контент принадлежат корпорациям, в Web3 контроль над данными и контентом переходит к самим пользователям.
✅ Одним из главных преимуществ Web3 является децентрализация. Вся инфа хранится в блокчейне, я рассказывал о нём в посте про ноды☝️. Это позволяет пользователям иметь полный контроль над своими данными и исключает возможность их незаконного использования.
✅ Еще одним плюсом является улучшенная безопасность. Благодаря криптографическим протоколам и смарт-контрактам, Web3 обеспечивает высокий уровень защиты данных и транзакций.
❌ Однако, как и любая новая технология, Web3 имеет свои недостатки: сложность использования, ограниченная масштабируемость и высокая стоимость выполнения операций. В настоящее время Web3 все еще находится в начале своего развития, но, с приходом в нашу жизнь ИИ, я надеюсь, что это развитие заметно ускорится 🚀
🌐 В целом, Web3 предлагает новую парадигму интернета, если смотрели сериал Кремниевая Долина, то там главный герой как раз пытался реализовать нечто подобное 🎬
💡 Если хотите узнать больше о Web3, дайте🔥 ! Буду рад делиться интересными материалами и обсуждать эту захватывающую технологию вместе с вами. До скорой встречи в мире Web3! 🌐✨
🔍 Но прежде, чем мы погрузимся в мир Web3, давайте вспомним, что такое Web2. Веб-приложения, которые мы используем каждый день, такие как социальные сети, почта или онлайн-магазины, основаны на Web2. В этой модели все данные и контент хранятся на серверах корпораций, которым принадлежит эта информация. Получается, пользователи зависят от этих компаний.
💡 Вот где на сцену выходит Web3! Эта новая технология стремится изменить это положение дел. В отличие от Web2, где данные и контент принадлежат корпорациям, в Web3 контроль над данными и контентом переходит к самим пользователям.
✅ Одним из главных преимуществ Web3 является децентрализация. Вся инфа хранится в блокчейне, я рассказывал о нём в посте про ноды☝️. Это позволяет пользователям иметь полный контроль над своими данными и исключает возможность их незаконного использования.
✅ Еще одним плюсом является улучшенная безопасность. Благодаря криптографическим протоколам и смарт-контрактам, Web3 обеспечивает высокий уровень защиты данных и транзакций.
❌ Однако, как и любая новая технология, Web3 имеет свои недостатки: сложность использования, ограниченная масштабируемость и высокая стоимость выполнения операций. В настоящее время Web3 все еще находится в начале своего развития, но, с приходом в нашу жизнь ИИ, я надеюсь, что это развитие заметно ускорится 🚀
🌐 В целом, Web3 предлагает новую парадигму интернета, если смотрели сериал Кремниевая Долина, то там главный герой как раз пытался реализовать нечто подобное 🎬
💡 Если хотите узнать больше о Web3, дайте
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Привет, друзья! Я тут запилил телеграм-бота, который поможет вам подготовиться к собеседованию по фронтенду! 👨💻
🔥 Забудьте о скучном штудировании конспекта перед каждым собесом. Мой бот возьмёт на себя роль интервьюера и проверит ваши знания🤖
🤔 Хотите попробовать? Вот как это работает:
1️⃣ Вы выбираете тему — бот задает вопрос.
2️⃣ Вопросы могут быть с вариантами ответов, выберите правильный вариант и узнайте, насколько хорошо вы разбираетесь во всех этих HTML'ях, JavaScript'ах и React'ах 🤓
3️⃣ Также есть открытые вопросы, на которые нужно дать ответ самостоятельно, но вы всегда сможете проверить себя, нажав кнопку "Узнать ответ".
4️⃣ А нажав кнопку "Случайный вопрос", бот выберет рандомный вопрос по любой из тем.
💡 Я создал бота по этой инструкции. Вы можете сделать своего бота или пользоваться моим, я задеплоил его в облако и теперь он доступен 24/7. Базу вопросов я буду постоянно дополнять. Присоединяйтесь к моему каналу и начните свое путешествие в мир фронтенда!
🌟 Готовы испытать свои силы?
🔗 Ссылка для подключения: MentorBot
💪 Подготовка к собеседованию никогда не была такой интересной! Давайте вместе станем мастерами фронтенда с помощью MentorBot'а🎉
🔥 Забудьте о скучном штудировании конспекта перед каждым собесом. Мой бот возьмёт на себя роль интервьюера и проверит ваши знания
🤔 Хотите попробовать? Вот как это работает:
💡 Я создал бота по этой инструкции. Вы можете сделать своего бота или пользоваться моим, я задеплоил его в облако и теперь он доступен 24/7. Базу вопросов я буду постоянно дополнять. Присоединяйтесь к моему каналу и начните свое путешествие в мир фронтенда!
🌟 Готовы испытать свои силы?
🔗 Ссылка для подключения: MentorBot
💪 Подготовка к собеседованию никогда не была такой интересной! Давайте вместе станем мастерами фронтенда с помощью MentorBot'а
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2🆒1
📚Продолжаю прокачивать JavaScript
✅ Победил очередную умную книжку по JS. Книга написана автором библиотеки jQuery, признанным экспертом в области frontend разработки.
➕ В книге подробно раскрывается понятие функции, как объекта высшего порядка, детально изучаются вопросы замыканий и контекста выполнения.
🚫 Секретов, однако, внутри никаких нет, напротив, информация, представленная в книге, просто обязательна к изучению любым фронтендером.
⚡️ В целом, по своему опыту, могу сказать, что чтение книг максимально плодотворно ложится на большое количество практики. Когда за плечами уже +100500 строк кода, книжная теория добавляет осознанности и понимания того, почему код работает именно так. 📕
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Hoisting для let и const 😱
Вот так живёшь себе и не знаешь, что переменные, объявленные с помощью let и const, оказывается, аналогично var, подвержены hoisting'гу⚡ то есть поднимаются наверх своей области видимости до начала выполнения кода.
Дело в том, что во время подготовки к собесам (а вопрос отличия var, let и const задают на 99% из них) во всех туториалах, которые я изучал по этому вопросу, как раз одним из отличий был hoisting переменных, объявленных с помощью var. Типо их объявление поднимается, и по этому мы можем получить к ним доступ до инициализации, а в случае let и const такого не происходит.
Но, как оказалось, это не совсем так❗️ let и const поднимаются также, как и var❗️ но попадают, при этом, в так называемую "временную мёртвую зону💀 "(temporal dead zone), которая начинается от верхней границы их области видимости и доходит до момента инициализации переменной.
Именно по этому, если мы попытаемся обратиться к переменной, объявленной с помощью let/const, до момента объявления, мы получим ошибку "ReferenceError: Cannot access 'variableName' before initialization" То есть JavaScript уже знает о существовании нашей переменной! чего не произошло бы, если бы она не поднялась👍
Я узнал об этом интересном нюансе, наткнувшись на эту статью. Если вы, также, как и я, до сих пор не знали ни о каких TDZ, то рекомендую ознакомиться. А если вы уже давно в курсе и удивлены, как можно не знать таких вещей, то поджигайте этот пост🔥 😉
Вот так живёшь себе и не знаешь, что переменные, объявленные с помощью let и const, оказывается, аналогично var, подвержены hoisting'гу
Дело в том, что во время подготовки к собесам (а вопрос отличия var, let и const задают на 99% из них) во всех туториалах, которые я изучал по этому вопросу, как раз одним из отличий был hoisting переменных, объявленных с помощью var. Типо их объявление поднимается, и по этому мы можем получить к ним доступ до инициализации, а в случае let и const такого не происходит.
Но, как оказалось, это не совсем так
Именно по этому, если мы попытаемся обратиться к переменной, объявленной с помощью let/const, до момента объявления, мы получим ошибку "ReferenceError: Cannot access 'variableName' before initialization" То есть JavaScript уже знает о существовании нашей переменной! чего не произошло бы, если бы она не поднялась
Я узнал об этом интересном нюансе, наткнувшись на эту статью. Если вы, также, как и я, до сих пор не знали ни о каких TDZ, то рекомендую ознакомиться. А если вы уже давно в курсе и удивлены, как можно не знать таких вещей, то поджигайте этот пост
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6💅1