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
Пояснение к ответу
new Number - это встроенная функция-конструктор. И хотя она выглядит как число, это не настоящее число: у него имеется ряд дополнительных возможностей. На самом деле это объект. Оператор == (абстрактное/нестрогое равенство) разрешает преобразование типов данных, он проверяет равенство значений. Оба значения равны 3, поэтому возвращается true. При использовании оператора === (строговое равенство, оператор идентичности) должны совпадать не только значения, но и типы данных. В данном случае это не так: new Number() - это не число, а объект. Поэтому два последних сравнения возвращают false.
4 234
let a = 3
let b = new Number(3)
let c = 3
console.log(a == b)
console.log(a === b)
console.log(b === c)4 234
🔥 Это база с 1400 вопросами с собеседований на Frontend разработчика. Фишка в том, что просчитана вероятность с которой вопрос буден задан и есть примеры ответов. Теперь можно легко получить оффер, подготовившись к самым популярным вопросам 😏
4 234
Самые полезные библиотеки JS для красивых анимаций
Анимации добавляют жизни приложениям и сайтам и делают их простыми в использовании. Мы можем добавлять изменение кнопок при нажатии, всплывающие объекты, эффекты перехода и многое другое, что позволяет пользователю не просто ознакомиться с содержимым, а еще и интересно провести время.
Мы поговорим о библиотеках JavaScript, упрощающих добавление этих анимаций для разработчиков, делая приложения более приятными.
Ссылка
#статьи
4 234
Пояснение к ответу
В JavaScript все объекты являются "ссылочными" типами данных, т.е. значения объектов передаются по ссылкам. Сначала в переменной c создается ссылка на объект. Затем мы указываем переменной d ссылаться на тот же объект, на который ссылается c. При изменении объекта меняются значения всех указывающих на него ссылок.
4 234
let c = { greeting: "Hey!" }
let d
d = c
c.greeting = "Hello!"
console.log(d.greeting)4 234
Как сделать из императивного компонента — декларативный React-компонент
Иногда в своё React-приложение нужно встроить сторонний компонент, который не работает с React и часто оказывается императивным.
Такой компонент приходится каждый раз инициализировать, уничтожать и, главное, проверять его состояние, прежде чем вызывать его методы.
Верным признаком того, что компонент нужно обернуть в декларативный компонент является обилие useEffect-ов, где проверяются разные сочетания параметров компонента. И в зависимости от этих сочетаний вызываются соответствующие методы компонента.
В статье я хочу разобрать по шагам, как превратить такой компонент в декларативный React-компонент.
Ссылка
4 234
Пояснение к ответу
Обратите внимание, что diameter - это обычная функция, а perimeter - стрелочная. У стрелочных функций, в отличие от обычных, значение this указывает на внешнее/лексическое окружение. Это значит, что при вызове метода perimeter его this указывает не на объект shape, а на глобальный объект window. У этого объекта нет свойства radius, поэтому возвращается undefined.
4 234
const shape = {
radius: 10,
diameter() {
return this.radius * 2
},
perimeter: () => 2 * Math.PI * this.radius
}
console.log(shape.diameter())
console.log(shape.perimeter())4 234
Telegram-канал об IT-решениях для бизнеса СофтТех
Друзья, не пропустите важную информацию!
Канал СофтТех рассказывает об IT-решениях для бизнеса и тех, кто их создаёт: ПО и кибербезопасность, облачные технологии, ЦОДы и IoT.
Сами давно читаем и вам советуем подписаться.
Подписаться
#реклама
О рекламодателе
4 234
Пояснение к ответу
Из-за очереди событий в JavaScript функция обратного вызова setTimeout выполняется после освобождения стека вызовов. Так как переменная i в первом цикле определяется с помощью ключевого слова var, она является глобальной. В цикле мы каждый раз увеличиваем значение i на 1, используя оператор ++. К моменту выполнения setTimeout в первом примере значение i равняется 3. Во втором цикле переменная i определяется с помощью ключевого слова let. Такие переменные (а также переменные, объявленные с помощью ключевого слова const) имеют блочную область видимости (блок - это код внутри фигурных скобок - {}). На каждой итерации i будет иметь новое значение, и это значение будет замкнуто в области видимости внутри цикла.
4 234
for (var i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 1)
}
for (let i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 1)
}4 234
Демо-счёт: Ваш шанс освоить валютный рынок без риска!
25 лет опыта на рынке, 46 доступных валютных пар и 0$ для начала! Получайте кэшбэк до 40% на издержки и становитесь профессионалом с Альпари! Заходите на сайт Альпари Брокера и начните свой путь к успеху прямо сейчас!
Узнать больше
Финансовые услуги оказывает: ООО "Альпари-Брокер".
#реклама
promo.alparistart.com
О рекламодателе
4 234
Typescript Generics
Javascript - крутой язык со своими преимуществами и недостатками. И одно из его свойств - это динамическая типизация, которая одновременно может быть как преимуществом, так и недостатком. Очень много холиварных тредов на этот счет, но по мне так все просто. Для небольших и простых проектов динамическая типизация - это очевидный плюс, так как сильно ускоряет разработку. Однако, когда речь идет о сложных системах, над которыми работает не один человек, сложно отрицать преимущество статической типизации. Ведь статические типы не только регламентируют систему, но и при больших размерах системы начинают ускорять разработку.
Ссылка
#ts
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
