CodeRoll | Frontend
5.45K subscribers
1.46K photos
62 videos
1 file
704 links
— Лучшее для разработчика и дизайнера / IT инструменты, курсы и книги
— Веб-разработка на JavaScript, HTML, CSS, React, Vue,Angular

Купить рекламу: https://telega.in/c/coderoll

Чат: https://t.me/coderoll_chat

По всем вопросам пишите сюда - @poxvawe322
Download Telegram
Что будет в консоли ?
Anonymous Quiz
18%
null
40%
[null]
5%
[{}]
38%
[{ name: "John" }]
Пояснение к ответу

Сначала мы объявляем переменную person со значением объекта, содержащего свойство name. Затем мы объявляем переменную members. Мы делаем первый элемент этого массива равным [person]. Объекты взаимодействуют посредством ссылок при установке их равными друг другу. Когда мы назначаем ссылку из одной переменной в другую, создается копия этой ссылки (обратите внимание, что у этих переменных не одинаковые ссылки). Затем мы присваиваем переменной person значение null. Мы изменили только значение person, а не первый элемент массива, поскольку этот элемент имеет другую (скопированную) ссылку на объект. Первый элемент в members по-прежнему содержит ссылку на исходный объект. Когда мы выводим в консоль массив members, первый элемент этого массива содержит значение объекта, который и выводится в консоль.
Основы программирования на примере исходного кода MobX

Изучите ключевые концепции программирования, лежащие в основе популярной JavaScript-библиотеки MobX. Понимание этих концепций поможет вам применить лучшие практики программирования в работе.

Ссылка

#статьи

const person = {
name: "John",
age: 30
}

for (const item in person) {
console.log(item)
}
Пояснение к ответу

С помощью цикла for..in мы перебираем ключи объекта, в данном случае name и age. Ключи объекта (кроме Symbol) являются строками. В каждом цикле мы устанавливаем значение item равным текущему ключу, по которому он перебирается. Сначала item равен name, и выводится в консоль. Затем item равен age, что также выводится в консоль.
This media is not supported in your browser
VIEW IN TELEGRAM
👨‍💻 Изучаешь Frontend? Я тоже!

idk Frontend - канал, в котором я максимально подробно конспектирую весь мой путь обучения с самого старта.

С меня:
— Сложная теория простым языком;
— Практические примеры и объяснения;
— Крутые викторины по JS и шпаргалки;
— Работа над ошибками.

С тебя:
— Подписка @idk_frontend

Продолжим обучаться вместе! 👋
Please open Telegram to view this post
VIEW IN TELEGRAM
Мегагайд: культура работы с Git

За время работы в разных компаниях и над разными проектами я поняла, что Git — это не только (и не столько!) знание самой технологии и конкретных команд, но и определённая культура взаимодействия, практики, подходы, договорённости. Всё это помогает участникам команды лучше понимать друг друга и работать быстрее и чётче.

Поговорим как раз об этом — о том, что формирует культуру работы с Git: начнём с конвенций именования коммитов и закончим практиками работы в пуллреквесте. В конце статьи я поделюсь полезными ссылками на интерактивные обучалки, шпаргалки и гайды.

Ссылка

#статьи
Разбираемся с this в JavaScript раз и навсегда

Бесконечно можно смотреть на три вещи: как горит огонь, как течет вода и то как фронтендеры пишут очередную статью про this.

Но все же такое количество статей существует не просто так, тема действительно для многих запутанная и зачастую даже сами авторы статей неправильно понимают this и соответственно закладывают неправильное понимание этого у читателей. Есть и хорошие статьи, где все описано верно, но в основном чисто с практической точки зрения, без погружения в то “как это работает на самом деле”.

В этой статье я попытаюсь раскрыть эту тему как можно глубже с теоретической точки зрения, исходя из спецификации ECMAScript, а уже на основе этой теории вывести определение значения this на практике.

Ссылка

#статьи

const num = parseInt("7*6", 10)

console.log(num)
Что будет в консоли ?
Anonymous Quiz
28%
42
10%
"42"
32%
7
30%
NaN
Пояснение к ответу

Функция parseInt проверяет, являются ли символы в строке допустимыми с точки зрения используемой системы счисления (второй необязательный аргумент). Как только встречается недопустимый символ, синтаксический анализ строки прекращается и последующие символы игнорируются. * является недопустимым числом. Поэтому parseInt прекращает разбор строки и возвращает 7.
Попытка создать идеальный компонент формы

Как я создавал свою библиотеку для работы с формой, какие сложности встретил и как их решал. Попытка типизировать вообще все и несколько интересных typescript кейсов, которые могут оказаться полезными.

Ссылка

#статьи

const result =
[1, 2, 3].map(num => {
if (typeof num === "number") return
return num * 2
})

console.log(result)
Пояснение к ответу

Метод map возвращает новый массив с обработанными с помощью функции обратного вызова элементами исходного массива. В данном случае элементы исходного массива являются числами, поэтому условие if typeof num === 'number' удовлетворяется. После этого выполнение функции останавливается, в новый массив попадает значение переменной num, равное undefined.
React Conf 2024. React v19

Только что завершилась Конференция React.js. Долгожданная конференция спустя почти 3 года после предыдущей. Не менее долгожданны и обновления реакта. И именно с них была начата конференция, им и будет посвящена статья. И да, как вы увидели из превью — 19 версия перешла в статус release candidate. Полноценный же релиз нам обещают в течении двух недель.

В целом, мне как next.js разработчику большая часть была знакома. Десятки статей на хабре уже рассказали о практически каждой части этого обновления, частично их касался и я рассказывая об обновлениях внесённых в next.js.

Можно сказать, что главным направлениям этого обновления было достижение «Высокого UX при высоком DX». Максимальная производительность при максимально простом коде. И так, а теперь к самой конференции.

Ссылка

#react

function Car() {
this.make = "Lamborghini"
return { make: "Maserati" }
}

const myCar = new Car()
console.log(myCar.make)
Что будет в консоли ?
Anonymous Quiz
30%
Lamborghini
54%
Maserati
7%
ошибка
10%
undefined
Пояснение к ответу

Когда возвращается свойство, его значение равняется возвращаемому значению, а не значению, установленному в функции-конструкторе. Мы возвращаем строку Maserati, поэтому значением myCar.make является Maserati.

(() => {
let x = (y = 10)
})()

console.log(typeof x)
console.log(typeof y)