Что такое наследование классов в JavaScript? 👯♀️
Наследование классов – это когда новый класс наследует свойства и методы с другого класса 🫴
Например, класс Programmer наследует класс Writer на примере со скрина 🎆
Это означает что теперь в классе Programmer есть такой же конструктор и методы как в классе Writer 👏
Соответственно теперь мы можем присвоить новый класс Programmer объекту и использовать метод, аналогичный методу класса Writer 👁🗨
Код со скрина:
Наследование классов – это когда новый класс наследует свойства и методы с другого класса 🫴
Например, класс Programmer наследует класс Writer на примере со скрина 🎆
Это означает что теперь в классе Programmer есть такой же конструктор и методы как в классе Writer 👏
Соответственно теперь мы можем присвоить новый класс Programmer объекту и использовать метод, аналогичный методу класса Writer 👁🗨
Код со скрина:
class Writer {
constructor(name) {
this.name = name;
}
think() {
console.log(`${this.name} думает`);
}
}
// класс Programmer наследует свойства и методы класса Writer
class Programmer extends Writer {}
const Codorum = new Programmer('Codorum');
Codorum.think();🔥2👍1👏1
🔘 Почему в JavaScript методы массива map(), filter() и slice() называют immutable-friendly?
Вопрос средней сложности ✴️
Вопрос средней сложности ✴️
Anonymous Quiz
26%
Потому что они возвращают новый массив, одновременно мутируя исходный
5%
Потому что они работают только с изменяемыми данными
66%
Потому что они возвращают новый массив, не меняя первоначальный
3%
Потому что они работают только с неизменными данными
👍2🔥2
С помощью метода slice можно вырезать (скопировать) часть элементов из массива или часть текста со строки в новый массив или строку 🔪
В отличие от метода splice, который работает с массивами чисел аналогично методу slice, метод slice еще может вырезать промежуток символов со строки 🔠
Для применения метода можно объявить новую переменную, через знак равенства указать исходный массив или строку, затем метод и в скобках указать промежуток элементов или символов, которые нужно вырезать (скопировать) в новую переменную в качестве массива или строки 🔢
Метод вырежет промежуток учитывая элемент, индекс которого был указан первым в скобках, но не учитывая элемент, индекс которого был указан вторым в скобках 👁🗨
В отличие от метода splice, который работает с массивами чисел аналогично методу slice, метод slice еще может вырезать промежуток символов со строки 🔠
Для применения метода можно объявить новую переменную, через знак равенства указать исходный массив или строку, затем метод и в скобках указать промежуток элементов или символов, которые нужно вырезать (скопировать) в новую переменную в качестве массива или строки 🔢
Метод вырежет промежуток учитывая элемент, индекс которого был указан первым в скобках, но не учитывая элемент, индекс которого был указан вторым в скобках 👁🗨
🔥3👍2
Заменит ли Искусственный интеллект Человека? 🤖
Полностью - наверняка нет. Не всех.
Во-первых, очевидно, что работодатели не смогут и не будут управлять всем сами. Какой-то минимальный управляющий штат будет необходим. Для управления теми же ИИ-агентами, подстраивания LLM-систем под нужные процессы 🔧
Во-вторых, благодаря/вопреки развитию ИИ происходит не только сокращение, но и рост количества стартапов, а следовательно и рост рабочих мест 📈
В-третьих, ИИ не сможет создавать в точности как человек. Да, человек создает что-то также вдохновляясь чем-то, перенимая чей-то опыт, компилируя уже имеющуюся информацию, как и ИИ на какой-то базе данных. Но есть ключевое отличие в создании (компиляции если хотите) чего-то Искусственным интеллектом и Человеком, про которое подробнее представлено мнение в видео на нашем Ютуб канале 👁
ИИ - конкурент, но пока явно не замена и не полноценная альтернатива Человеку 👨💻
Видео на украинском, для украинской части аудитории 🇺🇦
👉 Ссылка на видео ▶
Полностью - наверняка нет. Не всех.
Во-первых, очевидно, что работодатели не смогут и не будут управлять всем сами. Какой-то минимальный управляющий штат будет необходим. Для управления теми же ИИ-агентами, подстраивания LLM-систем под нужные процессы 🔧
Во-вторых, благодаря/вопреки развитию ИИ происходит не только сокращение, но и рост количества стартапов, а следовательно и рост рабочих мест 📈
В-третьих, ИИ не сможет создавать в точности как человек. Да, человек создает что-то также вдохновляясь чем-то, перенимая чей-то опыт, компилируя уже имеющуюся информацию, как и ИИ на какой-то базе данных. Но есть ключевое отличие в создании (компиляции если хотите) чего-то Искусственным интеллектом и Человеком, про которое подробнее представлено мнение в видео на нашем Ютуб канале 👁
ИИ - конкурент, но пока явно не замена и не полноценная альтернатива Человеку 👨💻
Видео на украинском, для украинской части аудитории 🇺🇦
👉 Ссылка на видео ▶
👍2🔥1🤔1
Рубрика разборов возможных вопросов из собеседований по JavaScript 🟨
👉 Что такое Webpack в веб-разработке?
Webpack – это сборщик модулей (module bundler), объединяющий все файлы проекта (js/jsx, css, изображения и т.д.) в один или несколько оптимизированных файлов для браузера ✅
📦 Что он делает:
➖ объединяет файлы (bundle)
➖ оптимизирует код (минимизация, удаление лишнего)
➖ поддерживает современный JS через транспайлеры (например, Babel)
➖ работает с CSS, изображениями и другими ресурсами
➖ позволяет использовать модули (import/export)
Он помогает сайту загружаться быстрее и удобно структурировать код 👁🗨
👉 Что такое Webpack в веб-разработке?
Webpack – это сборщик модулей (module bundler), объединяющий все файлы проекта (js/jsx, css, изображения и т.д.) в один или несколько оптимизированных файлов для браузера ✅
📦 Что он делает:
➖ объединяет файлы (bundle)
➖ оптимизирует код (минимизация, удаление лишнего)
➖ поддерживает современный JS через транспайлеры (например, Babel)
➖ работает с CSS, изображениями и другими ресурсами
➖ позволяет использовать модули (import/export)
Он помогает сайту загружаться быстрее и удобно структурировать код 👁🗨
🔥3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Условный рендеринг (conditional rendering) – это отображение компонентов или контента в зависимости от определенных условий или состояний 💎
👉 Реализовать это отображение можно с помощью различных способов, таких как:
➖ применение оператора "if/else"
➖ использование тернарного оператора "? :"
➖ использование метода render в классовых компонентах
➖ использование метода return в функциональных компонентах
В видео пример отображения разного текста в зависимости от значения состояния
Код из видео:
👉 Реализовать это отображение можно с помощью различных способов, таких как:
➖ применение оператора "if/else"
➖ использование тернарного оператора "? :"
➖ использование метода render в классовых компонентах
➖ использование метода return в функциональных компонентах
В видео пример отображения разного текста в зависимости от значения состояния
isLoggedIn, которое регулируется кнопкой 👁🗨Код из видео:
import { useState } from 'react';
const Component = () => {
const [isLoggedIn, setIsLoggedIn] = useState(false);
const handleLoginClick = () => {
setIsLoggedIn(prevState => !prevState);
};
return (
<div>
<h1>{isLoggedIn ? 'Вы успешно авторизованы' : 'Пожалуйста, авторизуйтесь'}</h1>
<button onClick={handleLoginClick}>
{isLoggedIn ? 'Выйти' : 'Войти'}
</button>
</div>
);
};
export default Component;👍3🔥2
Nullish coalescing (оператор нулевого слияния) – оператор в JavaScript, использующийся для задания значения по умолчанию, если переменная равна
👉 Он чем-то напоминает тернарный оператор
➖ тернарный оператор
➖ логический оператор
Оператор нулевого слияния же просто проверяет равна ли переменная
null или undefined 🟨👉 Он чем-то напоминает тернарный оператор
"?" и логический оператор "||" (ИЛИ), но:➖ тернарный оператор
"?" имеет 3 части (condition ? expr1 : expr2) и больше используется для более детальных задач➖ логический оператор
"||" (ИЛИ) срабатывает на любое falsy-значение (0, '', false, NaN)Оператор нулевого слияния же просто проверяет равна ли переменная
null или undefined, если нет - присваивает заданное значение по-умолчанию 👁🗨🔥4👍2
Рассмотрим тип объекта Object в JavaScript ⚜️
Объекты с типом Object используется для хранения свойств, методов и других вложенных объектов 🗄
На примере кода со скрина есть объект типа Object под названием person 👤
👉 У объекта person есть:
➖ свойства
➖ вложенный объект
➖ метод
👉 Что можно делать с объектом person:
➖ обращаться к свойствам (используя название объекта и название свойства "
➖ вызывать методы (используя название объекта и название метода "
Объекты с типом Object используется для хранения свойств, методов и других вложенных объектов 🗄
На примере кода со скрина есть объект типа Object под названием person 👤
👉 У объекта person есть:
➖ свойства
name и age➖ вложенный объект
address ➖ метод
speak, который выводит текст в консоль👉 Что можно делать с объектом person:
➖ обращаться к свойствам (используя название объекта и название свойства "
person.name")➖ вызывать методы (используя название объекта и название метода "
person.speak()")👍4🔥2
🔘 Что происходит при копировании объекта в JavaScript через оператор присваивания (=)?
Вопрос лёгкой сложности ❇️
Вопрос лёгкой сложности ❇️
Anonymous Quiz
10%
Копируются все вложенные свойства объекта
74%
Копируется ссылка на тот же объект
10%
Создается полная независимая копия объекта
5%
Создается новый объект без методов
👍4
Благодаря методу freeze можно заморозить объект в JavaScript 🧊
То есть запретить добавление, удаление и изменение свойств в объекте, а также изменение конфигурационных атрибутов свойств, таких как
👉 Метод можно использовать в целях:
➖ защиты конфигурационного объекта от изменений
➖ поддержания состояний неизменными в Redux или другой системе управления состоянием
➖ создания "неизменного" API
и многих других 👁🗨
То есть запретить добавление, удаление и изменение свойств в объекте, а также изменение конфигурационных атрибутов свойств, таких как
writable, enumerable, configurable 🚫👉 Метод можно использовать в целях:
➖ защиты конфигурационного объекта от изменений
➖ поддержания состояний неизменными в Redux или другой системе управления состоянием
➖ создания "неизменного" API
и многих других 👁🗨
👍2🔥2
Media is too big
VIEW IN TELEGRAM
Меню из блоков с помощью html-элемента <input> и хука useState в React ⚛️
👉 Блок состоит из связки двух html-элементов:
➖
➖
Хук useState сохраняет состояние выбранного блока 🔘
Код:
👉 Блок состоит из связки двух html-элементов:
➖
<input> c уникальным значением value для каждого блока ➖
<label> с наполнением блокаХук useState сохраняет состояние выбранного блока 🔘
Код:
const Component = () => {
const [selected, setSelect] = useState('');
const ChangeSelect = (event) => {
setSelect(event.target.value);
};
return (
<div class="main">
<input type="radio" id="b1" value="b1"
checked={selected === 'b1'} onChange={ChangeSelect}/>
<label htmlFor="b1" class='block'>1 блок</label>
<input type="radio" id="b2" value="b2"
checked={selected === 'b2'} onChange={ChangeSelect}/>
<label htmlFor="b2" class="block">2 блок</label>
<input type="radio" id="b3" value="b3"
checked={selected === 'b3'} onChange={ChangeSelect}/>
<label htmlFor="b3" class="block">3 блок</label>
</div>
);
};
export default Component;🔥4👍2
Forwarded from Workford | digital design 🖌️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Скоупинг – комплексное понятие, охватывающее несколько аспектов, направленных на правильное управление переменными и функциями кода. Для избежания конфликтов и обеспечения прозрачного и безопасного взаимодействия элементов программы 🧿
Основные аспекты скоупинга это: Объявление переменных, Объем видимости, Жизненный цикл, Поднятие, Замыкание 🔹
Рассмотрим аспект – объявление переменных ⏺
Важно на разных уровнях скоупа использовать разные ключевые слова для объявления переменных (в случае кода на скрине лучше через let). Чтобы переменная из блока if не стала глобальной и не стала причиной возможного конфликта с другими переменными на других Scope уровнях 👁🗨
Основные аспекты скоупинга это: Объявление переменных, Объем видимости, Жизненный цикл, Поднятие, Замыкание 🔹
Рассмотрим аспект – объявление переменных ⏺
Важно на разных уровнях скоупа использовать разные ключевые слова для объявления переменных (в случае кода на скрине лучше через let). Чтобы переменная из блока if не стала глобальной и не стала причиной возможного конфликта с другими переменными на других Scope уровнях 👁🗨
👍2🔥2
Несколько цифр про Cookie 🍪
Cookie – это небольшой фрагмент данных, сохраняющийся на компьютере пользователя посещаемыми пользователем веб-сайтами 🌐
🔸 Максимальный размер одного файла cookie составляет
🔸 Максимальное количество cookie-файлов на один домен обычно
🔸 А среднее максимальное количество cookie, которые могут храниться браузером около
Cookie – это небольшой фрагмент данных, сохраняющийся на компьютере пользователя посещаемыми пользователем веб-сайтами 🌐
🔸 Максимальный размер одного файла cookie составляет
4096 байтов. Грубо говоря, в один такой файл уместится информация в виде текста размером до 4096 символов латиницы. То есть до 4096 однобайтовых символов 🔸 Максимальное количество cookie-файлов на один домен обычно
50🔸 А среднее максимальное количество cookie, которые могут храниться браузером около
3000👍4❤1🔥1👏1
forEach – метод, позволяющий пошагово перебирать все элементы массива. Метод в параметре получает функцию, которая выполнится для каждого элемента массива 👟
С помощью этого метода можно, к примеру, отображать индексы элементов массива, выполнять математические операции, то есть применять функции к каждому элементу поочередно 👁🗨
С помощью этого метода можно, к примеру, отображать индексы элементов массива, выполнять математические операции, то есть применять функции к каждому элементу поочередно 👁🗨
👍3🔥3
Классы в 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 {}
🔥4👍1
🔘 Какая главная особенность WeakMap в JavaScript по сравнению с обычным Map?
Вопрос средней сложности ✴️
Вопрос средней сложности ✴️
Anonymous Quiz
54%
Ключи в WeakMap могут быть автоматически удалены сборщиком мусора (Garbage Collector)
9%
WeakMap поддерживает перебор через for...of
23%
Ключи в WeakMap могут получить только примитивные типы данных
14%
WeakMap автоматически замораживает объекты-ключи
👍4🔥1
Как можно добавить тень от элемента по контуру в CSS? 🔵🕳
Если использовать стандартное свойство для тени box-shadow будет добавлена тень от блока/контейнера/зоны элемента, но благодаря свойству filter со значением drop-shadow можно добиться тени именно по контуру объекта, будь-то неквадратное изображение или текст 🧩
Применяется свойство filter со значением drop-shadow почти так же как и свойство box-shadow, а разница очевидна (пример применения обоих свойств на скрине) 👁🗨
Если использовать стандартное свойство для тени box-shadow будет добавлена тень от блока/контейнера/зоны элемента, но благодаря свойству filter со значением drop-shadow можно добиться тени именно по контуру объекта, будь-то неквадратное изображение или текст 🧩
Применяется свойство filter со значением drop-shadow почти так же как и свойство box-shadow, а разница очевидна (пример применения обоих свойств на скрине) 👁🗨
🔥4👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Как клиент взаимодействует с сервером с помощью JavaScript 🟨
Запрос от клиента 📨
Когда пользователь нажимает кнопку или выполняет какое-либо действие на веб-странице, браузер (клиент) отправляет запрос на сервер. Это может быть
Обработка на сервере ⚙️
Сервер получает запрос и выполняет необходимые действия: может обратиться в базу данных, обработать данные или выполнить другие операции. После этого сервер формирует ответ.
Ответ от сервера 📥
Сервер отправляет ответ к клиенту. Это может быть
Обработка ответа в клиенте 🔄
Клиент получает ответ и с помощью JavaScript может обновить пользовательский интерфейс. К примеру, отобразить новые данные без перезагрузки страницы.
В видео мы рассмотрели пример запроса с помощью Fetch API 👁🗨
Запрос от клиента 📨
Когда пользователь нажимает кнопку или выполняет какое-либо действие на веб-странице, браузер (клиент) отправляет запрос на сервер. Это может быть
HTTP-запрос, например GET или POST.Обработка на сервере ⚙️
Сервер получает запрос и выполняет необходимые действия: может обратиться в базу данных, обработать данные или выполнить другие операции. После этого сервер формирует ответ.
Ответ от сервера 📥
Сервер отправляет ответ к клиенту. Это может быть
HTML-страница, JSON-данные или другой тип данных.Обработка ответа в клиенте 🔄
Клиент получает ответ и с помощью JavaScript может обновить пользовательский интерфейс. К примеру, отобразить новые данные без перезагрузки страницы.
В видео мы рассмотрели пример запроса с помощью Fetch API 👁🗨
🔥4👍1
Благодаря методу endsWith можно проверить заканчивается ли строка на заданную букву в JavaScript ✏
Применение стандартное: указываем строку и метод endsWith через точку, затем букву в скобках, наличие которой необходимо проверить в конце строки 🔦
Метод возвращает boolean значения
Стоит учитывать регистр, в которой находится буква, которую мы проверяем. Если буква будет правильной, но регистр будет неверный - мы получим значение
Применение стандартное: указываем строку и метод endsWith через точку, затем букву в скобках, наличие которой необходимо проверить в конце строки 🔦
Метод возвращает boolean значения
true / false в зависимости от результата 🚥Стоит учитывать регистр, в которой находится буква, которую мы проверяем. Если буква будет правильной, но регистр будет неверный - мы получим значение
false 👁🗨👍3🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Scope – это область видимости для переменных и функций 🔳
Есть три типа Scope: глобальный Scope, локальный (функциональный) и блочный ℹ️
Переменные объявленные на уровень выше будут видны также в скоупе на уровень ниже. То есть, например, переменная
Границы скоуп уровней определяются фигурными скобками. И, обычно, в редакторах кода можно увидеть характерную вертикальную линию, которая подсказывает границы внутренних Scope ☑️
Есть три типа Scope: глобальный Scope, локальный (функциональный) и блочный ℹ️
Переменные объявленные на уровень выше будут видны также в скоупе на уровень ниже. То есть, например, переменная
"a" с кода на гиф изображении будет доступна в локальном скоупе (области видимости функции Local), но переменная "b", которая объявлена внутри скоупа функции не будет видна в глобальном скоуп 👁🗨Границы скоуп уровней определяются фигурными скобками. И, обычно, в редакторах кода можно увидеть характерную вертикальную линию, которая подсказывает границы внутренних Scope ☑️
🔥4👍1