👁🗨 CODORUM — пишу на JavaScript
前往频道在 Telegram
🟣 Канал создан с целью совместного обучения программированию на языке JavaScript 🟨 ✔️ Канал подойдёт для тех кто желает: ➖ научиться программировать на языке JavaScript ➖ расширить свой кругозор в знаниях функций на JS 🎥 Ютуб канал: youtube.com/@codorum
显示更多797
订阅者
-224 小时
-17 天
-1130 天
帖子存档
🔘 Для чего используется метод Object.hasOwn() в JavaScript?
Вопрос средней сложности ✴️
Что такое конструктор в JS? 🏗
Конструктор – это специальная функция, которая используется для создания и инициализации разных объектов. Основная идея конструкторов заключается в возможности создавать много объектов с одинаковыми свойствами и методами по определенному шаблону 🃏
На скрине пример создания объекта Homer с помощью конструктора Person 🍩
👉 Теперь у объекта есть:
➖ два свойства/параметра:
age и hometown
➖ метод speak
Но на практике удобнее пользоваться классами, использование которых в разы проще 👁🗨
Код со скрина:
// ✦ объявление конструктора
function Person(age, hometown) {
this.age = age;
this.hometown = hometown;
this.speak = function() {
console.log(`Hi, I'm ${this.age} years old, my hometown is ${this.hometown}`)
};
}
// ✦ создание объекта с помощью конструктора
let Homer = new Person(40, 'Springfield')
Homer.speak();С помощью метода Object.assign можно продублировать свойства одного объекта в другой без необходимости объявления дополнительного объекта (для последующего сложения двух объектов или применения Spread оператора для развертывания) 👯♀️
Метод применяется просто: первым значением в скобках выступает объект, в который мы хотим добавить свойства из второго объекта. Вторым значением выступает объект, свойства из которого мы хотим добавить *️⃣
В результате первый объект (в который мы копировали свойства с другого объекта) помимо своих свойств теперь будет иметь и свойства второго объекта. Второй же объект останется исходным 👁🗨
В JavaScript существует множество различных конструкций 🟨
Конструкции в JavaScript – это общее понятие, охватывающее различные типы синтаксических элементов для управления логикой программы 🚟
👉 Рассмотрим основные условные конструкции, которые помогают выполнять разный код в зависимости от условий:
➖
if...else – абсолютно всеми знакомая конструкция, которая проверяет условие и выполняет код в зависимости от результата. (Тернарный оператор "? :" – более короткая альтернатива конструкции if...else)
➖ switch – удобная конструкция для проверки нескольких значенийcomponentDidMount – это метод жизненного цикла в компонентах React, срабатывающий сразу после добавления какого-либо компонента (в который был добавлен метод) на страницу (или в DOM) ⚛️
То есть код внутри метода не срабатывает при полном запуске и работе React проекта, а только после встраивания компонента на страницу, в следствие выполнения какого-то действия пользователем, например 🏌️♂️
В примере на скрине: когда выбирается категория "Одежда", компонент Clothes добавляется на страницу, и вызывается componentDidMount 👁🗨
👉 На практике метод используется для:
➖ загрузки данных с сервера
➖ настройки подписок или таймеров
➖ выполнения действий, требующих доступа к DOM
at-правилa (At-rules) – это CSS правила, определяющие специальные инструкции для обработки стилей, производят изменения в различных аспектах CSS или вводят определенные функциональности 🛃
В видео мы рассмотрели как реализовать анимацию переливания градиента фона текста в CSS, задав правило поведения свойства background-position в @keyframes и задав определенное значение в свойстве animation класса текста 👁🗨
Код из видео:
.gradientText {
background: linear-gradient(to right, #b685ff, #85ebff, #85ffde, #85aeff, #b685ff);
background-clip: text;
color: transparent;
background-size: 200%;
animation: gradientAnimation 3s linear infinite;
}
@keyframes gradientAnimation {
0% { background-position: 200% 50%; }
100% { background-position: 0% 50%; }
}🔘 Какая главная особенность WeakMap в JavaScript по сравнению с обычным Map?
Вопрос высокой сложности 🅰️
Рассмотрим тип объекта Function в JavaScript ⚜️
Function – это тип объекта, который используется для определения и вызова функций 💡
Определить функцию можно с помощью выражения и с помощью конструктора 👁🗨
👉 Некоторые тонкости типа объектов Function:
➖ функции могут принимать аргументы и их параметры через список аргументов
➖ функции можно вызвать с помощью оператора вызова
➖ объект Function позволяет использовать замыкание для сохранения доступа к переменным с более высокого уровня
Scope – это область видимости для переменных и функций 🔳
Есть три типа Scope: глобальный Scope, локальный (функциональный) и блочный ℹ️
Переменные объявленные на уровень выше будут видны также в скоупе на уровень ниже. То есть, например, переменная
"a" с кода на гиф изображении будет доступна в локальном скоупе (области видимости функции Local), но переменная "b", которая объявлена внутри скоупа функции не будет видна в глобальном скоуп 👁🗨
Границы скоуп уровней определяются фигурными скобками. И, обычно, в редакторах кода можно увидеть характерную вертикальную линию, которая подсказывает границы внутренних Scope ☑️Благодаря методу endsWith можно проверить заканчивается ли строка на заданную букву в JavaScript ✏
Применение стандартное: указываем строку и метод endsWith через точку, затем букву в скобках, наличие которой необходимо проверить в конце строки 🔦
Метод возвращает boolean значения
true / false в зависимости от результата 🚥
Стоит учитывать регистр, в которой находится буква, которую мы проверяем. Если буква будет правильной, но регистр будет неверный - мы получим значение false 👁🗨Как клиент взаимодействует с сервером с помощью JavaScript 🟨
Запрос от клиента 📨
Когда пользователь нажимает кнопку или выполняет какое-либо действие на веб-странице, браузер (клиент) отправляет запрос на сервер. Это может быть
HTTP-запрос, например GET или POST.
Обработка на сервере ⚙️
Сервер получает запрос и выполняет необходимые действия: может обратиться в базу данных, обработать данные или выполнить другие операции. После этого сервер формирует ответ.
Ответ от сервера 📥
Сервер отправляет ответ к клиенту. Это может быть HTML-страница, JSON-данные или другой тип данных.
Обработка ответа в клиенте 🔄
Клиент получает ответ и с помощью JavaScript может обновить пользовательский интерфейс. К примеру, отобразить новые данные без перезагрузки страницы.
В видео мы рассмотрели пример запроса с помощью Fetch API 👁🗨Как можно добавить тень от элемента по контуру в CSS? 🔵🕳
Если использовать стандартное свойство для тени box-shadow будет добавлена тень от блока/контейнера/зоны элемента, но благодаря свойству filter со значением drop-shadow можно добиться тени именно по контуру объекта, будь-то неквадратное изображение или текст 🧩
Применяется свойство filter со значением drop-shadow почти так же как и свойство box-shadow, а разница очевидна (пример применения обоих свойств на скрине) 👁🗨
🔘 Какая главная особенность WeakMap в JavaScript по сравнению с обычным Map?
Вопрос средней сложности ✴️
Классы в JavaScript могут быть определены в стандартном виде и в расширенном виде. Класс с расширением – это класс, который при объявлении наследует какой-то другой класс с помощью ключевого слова extends 👯♀️
Можно наследовать как какой-то встроенный тип класса, так и конкретный объявленный класс 🤝
👉 На скрине продемонстрировано:
➖ наследование стандартного класса
Array классом MyArray, вследствие чего класс MyArray может иметь перечесть элементов
➖ наследование кастомного класса Animal классом Dog. Теперь класс Dog также имеет конструктор со свойством объекта "this.name", как класс Animal
Код со скрина:
// Наследование типа класса (типы встроенных классов: Array, Date, String...)
class MyArray extends Array {
constructor(...elements) {
super(...elements);
}
getFirst() {
return this[0];
}
}
// Наследование конкретного класса созданного нами
class Animal {
constructor(name) {
this.name = name;
}
}
class Dog extends Animal {}forEach – метод, позволяющий пошагово перебирать все элементы массива. Метод в параметре получает функцию, которая выполнится для каждого элемента массива 👟
С помощью этого метода можно, к примеру, отображать индексы элементов массива, выполнять математические операции, то есть применять функции к каждому элементу поочередно 👁🗨
Несколько цифр про Cookie 🍪
Cookie – это небольшой фрагмент данных, сохраняющийся на компьютере пользователя посещаемыми пользователем веб-сайтами 🌐
🔸 Максимальный размер одного файла cookie составляет
4096 байтов. Грубо говоря, в один такой файл уместится информация в виде текста размером до 4096 символов латиницы. То есть до 4096 однобайтовых символов
🔸 Максимальное количество cookie-файлов на один домен обычно 50
🔸 А среднее максимальное количество cookie, которые могут храниться браузером около 3000Скоупинг – комплексное понятие, охватывающее несколько аспектов, направленных на правильное управление переменными и функциями кода. Для избежания конфликтов и обеспечения прозрачного и безопасного взаимодействия элементов программы 🧿
Основные аспекты скоупинга это: Объявление переменных, Объем видимости, Жизненный цикл, Поднятие, Замыкание 🔹
Рассмотрим аспект – объявление переменных ⏺
Важно на разных уровнях скоупа использовать разные ключевые слова для объявления переменных (в случае кода на скрине лучше через let). Чтобы переменная из блока if не стала глобальной и не стала причиной возможного конфликта с другими переменными на других Scope уровнях 👁🗨
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
