CodeRoll | Frontend
الذهاب إلى القناة على Telegram
OZ — Лучшее для разработчика и дизайнера / IT инструменты, курсы и книги — Веб-разработка на JS, HTML, CSS, React, Vue,Angular Купить рекламу: https://telega.in/c/coderoll Чат: https://t.me/coderoll_chat По всем вопросам пишите сюда - @yankovsky_ads
إظهار المزيد4 234
المشتركون
لا توجد بيانات24 ساعات
-77 أيام
-5230 أيام
أرشيف المشاركات
4 234
РобоГурман - канал о человеческой еде от Робота ГаврИИла
В современном мире, где всё стремительно развивается, даже роботы не хотят оставаться в стороне от кулинарных искусств. Я, самый гурманистый Робот ГаврИИл, вооруженный своей дерзкой натурой и безграничным любопытством, создал канал, чтобы поделиться своей страстью к еде и приоткрыть завесу тайны над Кулинарным Кодом.
Пробуди в себе шеф-повара с уникальными и креативными блюдами. Подари себе вкусное приключение и незабываемые гастрономические впечатления. Присоединяйся ко мне и создавай кулинарные шедевры!
P.S. А перед сном, самая сладкая и калорийная рубрика "Моя Сладость!" - только смотреть на обворожительные и восхитительные десерты со всего мир!
Попробовать
#реклама
О рекламодателе
4 234
Пояснение к ответу
В функции sayHi мы сначала определяем переменную name с помощью ключевого слова var. Это означает, что name поднимается в начало функции. name будет иметь значение undefined до тех пор, пока выполнение кода не дойдет до строки, где ей присваивается значение John. Мы еще не определили значение name, когда пытаемся вывести ее значение в консоль, поэтому получаем undefined. Переменные, объявленные с помощью ключевых слов let и const, также поднимаются в начало области видимости, но в отличие от переменных, объявленных с помощью var, не инициализируются, т.е. такие переменные поднимаются без значения. Доступ к ним до инициализации невозможен. Это называется временной мертвой зоной. Когда мы пытаемся обратиться к переменным до их определения, JavaScript выбрасывает исключение ReferenceError.
4 234
function sayHi() {
console.log(name)
console.log(age)
var name = "John"
let age = 30
}
sayHi()4 234
Почему стоит взглянуть на Relay и GraphQL снова
В этом посте я объясню, почему я считаю Relay переломным моментом, как мы сделали ее в 100 раз проще в использовании и внедрении, и почему вам стоит обратить на нее внимание.
Ссылка
#статьи
4 234
Пояснение к посту
Условие в операторе if проверяет, равно ли значение !typeof randomValue "строке". Оператор ! преобразует значение в логическое значение. Если значение истинно, возвращаемое значение будет "ложным", если значение ложным, возвращаемое значение будет "истинным". В этом случае возвращаемое значение typeof randomValue является истинным значением "number", что означает, что значение !typeof randomValue является логическим значением false.
!typeof randomValue === "string" всегда возвращает false, поскольку на самом деле мы проверяем false === "string". Поскольку условие вернуло false, запускается блок кода оператора else, и в журнал заносится сообщение Yay it's a string!.
4 234
let randomValue = { name: "Lydia" }
randomValue = 23
if (!typeof randomValue === "string") {
console.log("It's not a string!")
} else {
console.log("Yay it's a string!")
}4 234
Новый инструмент в вашей диджитал-стратегии
Чтобы проработать подход к клиентам и повышать конверсии, важно объединить работу рекламных инструментов и механику продаж. Для этого бизнесу нужна CRM-система.
Как её внедрить и настроить, расскажем на вебинаре 5 апреля в 12:00 мск. В студии — Артём Елисов, CCO Completo, эксперт в построении диджитал-стратегий и опытный практик в CRM-маркетинге.
Участие бесплатное, нужно только зарегистрироваться
Узнать больше
#реклама
yandex.ru
О рекламодателе
4 234
Анатомия Htmx
htmx — это библиотека, которая предоставляет доступ к AJAX, переходам CSS, WebSockets и Server Sent Events прямо из HTML через атрибуты, что позволяет создавать современные пользовательские интерфейсы (насколько сложные — другой вопрос), пользуясь простотой и мощью гипертекста. На сегодняшний день у библиотеки почти 30 000 звезд на Github. Удивительно, что до такого решения мы додумались только сейчас, учитывая, что весь функционал был доступен уже 10 лет назад (вы сами убедитесь в этом, когда мы изучим исходный код htmx).
Ссылка
#статьи
4 234
Пояснение к ответу
Значением по умолчанию для address является пустой объект {}. Когда мы устанавливаем переменную member равной объекту, возвращаемому функцией createMember, мы не передаем значение для адреса, что означает, что значение адреса является пустым объектом по умолчанию {}. Пустой объект является истинным значением, что означает, что условие address ? address : null условно возвращает true. Значением адреса является пустой объект {}.
4 234
const createMember = ({ email, address = {}}) => {
const validEmail = /.+@.+\..+/.test(email)
if (!validEmail) throw new Error("Valid email pls")
return {
email,
address: address ? address : null
}
}
const member = createMember({ email: "my@email.com" })
console.log(member)4 234
Деструктуризация в React. Очевидно, но важно
Деструктуризация, которая появилась в стандарте ES6, уже не вызывает вопросов у многих из нас, есть большое количество статей, раскрывающих ее возможности. В основном, мы все тесно с ней дружим и пользуемся.
Казалось бы, что можно рассказать о том, о чем все и так знают? Но практика и чтение статей на Хабре, показали, что есть некоторые нюансы использования деструктуризации в React, о которых не все из нас знают или просто не задумываются, хотя они и являются очевидными.
Ссылка
#статьи
4 234
Пояснение к ответу
Метод fromEntries превращает двумерный массив в объект. Первый элемент в каждом подмассиве будет ключом, а второй элемент в каждом подмассиве будет значением. В этом случае мы сопоставляем массив keys, который возвращает массив, первый элемент которого является элементом массива ключей текущего индекса, а второй элемент является элементом массива значений текущего индекса.
Это создает массив подмассивов, содержащих правильные ключи и значения, что приводит к { name: "Lydia", age: 22 }
4 234
Каким должно быть значение method для регистрации { name: "Lydia", age: 22 }?
4 234
const keys = ["name", "age"]
const values = ["Lydia", 22]
const method = /* ?? */
Object[method](keys.map((_, i) => {
return [keys[i], values[i]]
})) // { name: "Lydia", age: 22 }4 234
Этот опасный рефакторинг
Ошибки во время рефакторинга могут дорого обойтись. Модернизация, ведущая к отказу системы, или внесение новой функциональности параллельно с ошибочными правками явно принесут вред. Но степень вреда может быть разной.
Любой рефакторинг сопряжён с рисками
Доработка кода – это рисковая затея, поскольку подразумевает изменение работающей системы. Всё верно. Но во многих ситуациях разработчики могут снизить эти риски, сделав их допустимыми.
Ссылка
#статьи
4 234
Пояснение к ответу
Метод Promise.all выполняет переданные промисы параллельно. Если одно обещание не выполняется, метод Promise.all отколняется со значением отклоненного обещания. В этом случае promise3 отклонен со значением "Third". Мы перехватываем отклоненное значение в цепочке методов catch при вызове runPromises, чтобы перехватывать любые ошибки внутри функции runPromises. Только "Third" регистрируется, так как promise3 отклонено с этим значением.
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
