С помощью метода Object.values можно легко конвертировать значения свойств объекта в элементы массива 🌀
У объекта есть, допустим, 3 свойства и с помощью метода мы как бы вытягиваем значения этих свойств и делаем их самостоятельными элементами, собирая в отдельный массив 👁🗨
Код со скрина:
У объекта есть, допустим, 3 свойства и с помощью метода мы как бы вытягиваем значения этих свойств и делаем их самостоятельными элементами, собирая в отдельный массив 👁🗨
Код со скрина:
// ✦ Объект с тремя свойствами
const user = { name: 'Ignat', age: 30, role: 'admin' };
// ✦ Массив с тремя элементами (в качестве элементов
// выступают значения свойств объекта user)
const array = Object.values(user);
console.log("array =", array);
👍4🔥3
Рассмотрим тип объекта JSON в JavaScript ⚜️
JSON – это легкий и понятный формат обмена данными, используемый для представления структурированных данных 🗂
👉 метод stringify используется для преобразования JavaScript-объекта в JSON-строку. Он принимает объект, опционально функцию преобразования (replacer) и параметр пробела (space) для форматирования строки
👉 метод parse используется для разбора (парсинга) JSON-строки и создания соответствующего JavaScript-объекта. Он принимает строку
JSON – это легкий и понятный формат обмена данными, используемый для представления структурированных данных 🗂
👉 метод stringify используется для преобразования JavaScript-объекта в JSON-строку. Он принимает объект, опционально функцию преобразования (replacer) и параметр пробела (space) для форматирования строки
👉 метод parse используется для разбора (парсинга) JSON-строки и создания соответствующего JavaScript-объекта. Он принимает строку
JSON и опционально функцию разбора (reviver)👍4🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
useMemo – это React хук, выполняющий мемоизацию (сохранение) результатов обработки значений функциями ⚛
Хук useMemo помнит результаты уже однажды выполненных вычислений и возвращает их при следующих вызовах 🧠
Это делает хук эффективным для оптимизации использования ресурсов при рендеринге компонентов 👁🗨
Код из видео:
Хук useMemo помнит результаты уже однажды выполненных вычислений и возвращает их при следующих вызовах 🧠
Это делает хук эффективным для оптимизации использования ресурсов при рендеринге компонентов 👁🗨
Код из видео:
import { useMemo, useState } from 'react';
const Component = () => {
const [count, setCount] = useState(0);
const [inputValue, setInputValue] = useState(0);
const square = useMemo(() => {
return count ** 2;
}, [count]);
const handleInputChange = (event) => {
setInputValue(event.target.value);
};
const handleCalculate = () => {
setCount(parseInt(inputValue));
};
return (
<div>
<p>Введите число:</p>
<input type="number" value={inputValue} onChange={handleInputChange}/>
<button onClick={handleCalculate}>Узнать квадрат числа</button>
<p>Квадрат числа {count} = {square}</p>
</div>
);
};
export default Component🔥5👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Эффект вращающегося 3Д текста в HTML & CSS 🟦
// index.html
<div class="box">
<div>
<span style="transform:
rotateX(calc(1 * 120deg))">
</span>
<span style="transform:
rotateX(calc(2 * 120deg))">
</span>
<span style="transform:
rotateX(calc(3 * 120deg))">
</span>
</div>
</div>
/* index.css */
.box div {
transform-style: preserve-3d;
animation: rotation 10s linear infinite;
}
@keyframes rotation {
0% { transform: rotateX(0deg) }
100% { transform: rotateX(360deg) }
}
.box div span {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
}
.box div span::before {
font-weight: 900;
content: 'CODORUM JS';
height: 35px;
}
🔥6👍2
Тремя постами ранее мы рассматривали как получить значения свойств объекта благодаря методу Object.values, с помощью же метода Object.keys мы можем собрать ключи этих свойств в отдельный массив 🌀
Применяется метод Object.keys аналогично методу Object.values. Только вместо массивазначений свойств объекта мы получаем массив с элементами состоящими из ключей свойств объекта 🔑
Следовательно, метод Object.keys не менее полезен и удобен, чем метод Object.values и тоже часто может пригодится 👁🗨
Код со скрина:
Применяется метод Object.keys аналогично методу Object.values. Только вместо массива
Следовательно, метод Object.keys не менее полезен и удобен, чем метод Object.values и тоже часто может пригодится 👁🗨
Код со скрина:
// ✦ Объект с тремя свойствами
const user = { name: 'Ignat', age: 30, role: 'admin' };
// ✦ Массив с тремя элементами (в качестве элементов
// выступают ключи свойств объекта user)
const array = Object.keys(user);
console.log("array =", array);
👍3🔥3❤1
🔘 Какое значение вернёт оператор typeof null в JavaScript?
Вопрос лёгкой сложности ❇️
Вопрос лёгкой сложности ❇️
Anonymous Quiz
34%
"null"
24%
"undefined"
39%
"object"
3%
"number"
👍3🔥2
С помощью методов Push и Pop можно добавить или удалить элемент в конце массива на JavaScript 🟨
👉 метод Push добавляет элемент или элементы в конец массива
👉 метод Pop удаляет последний элемент массива
Применение методов стандартное: указывается название массива и метод через точку. В скобках к методу Push можно указать 1 или несколько элементов через запятую, а скобки к методу Pop оставляем пустые (в любом случае он удалит последний элемент массива, независимо от того что мы там укажем) 👁🗨
👉 метод Push добавляет элемент или элементы в конец массива
👉 метод Pop удаляет последний элемент массива
Применение методов стандартное: указывается название массива и метод через точку. В скобках к методу Push можно указать 1 или несколько элементов через запятую, а скобки к методу Pop оставляем пустые (в любом случае он удалит последний элемент массива, независимо от того что мы там укажем) 👁🗨
🔥5👍2
👉 Что такое потеря контекста, когда она происходит и как ее предотвратить?
Потеря контекста – это когда
⚠ Часто случается при:
➖ передачи методов объекта как callback
➖ использовании
➖ использовании обработчиков событий
➖ деструктуризации методов
💡 Решается с помощью bind, arrow function или call/apply
Потеря контекста – это когда
this больше не указывает на ожидаемый объект из-за способа вызова функции 💨⚠ Часто случается при:
➖ передачи методов объекта как callback
➖ использовании
setTimeout, setInterval➖ использовании обработчиков событий
➖ деструктуризации методов
💡 Решается с помощью bind, arrow function или call/apply
🔥6👍4❤2
Forwarded from Workford | digital design 🖌️
Какая работа самая сильная?
Anonymous Poll
4%
1 🟨 (жёлтый сторис с кондитерскими изделиями)
13%
2 🟦 (новогоднее превью про фильмы)
13%
3 🟥 (красное превью с девушкой)
8%
4 🟦 (синий баннер про недвижимость)
21%
5 ⬛ (черный креатив с тостами)
0%
6 ⬜ (бело-бирюзовый баннер со стоматологом)
21%
7 🟪 (фиолетовое превью про premiere pro)
21%
8 🟩 (серо-зеленый баннер с зелёным чаем)
This media is not supported in your browser
VIEW IN TELEGRAM
Babel – это JavaScript компилятор, который используется для преобразования современного JavaScript-кода в код, поддерживаемый более старыми браузерами или средами выполнения. Babel помогает разработчикам писать современный код без заботы о совместимости с разными средами выполнения 🅱️
👉 Babel имеет несколько важных ролей:
➖ поддержка современных стандартов JavaScript
➖ совместимость с JSX
➖ транспиляция экспериментальных функций
➖ поддержка полей классов и других новшеств
Как это работает? ⚙
Babel использует плагины для преобразования разных частей современного синтаксиса JavaScript. Каждый плагин отвечает за определенную функциональность, например преобразование стрелочных функций, классов, шаблонных строк и т.д. Babel также может использовать пресеты (наборы плагинов) для комплексной поддержки разных версий JavaScript 👁🗨
👉 Babel имеет несколько важных ролей:
➖ поддержка современных стандартов JavaScript
➖ совместимость с JSX
➖ транспиляция экспериментальных функций
➖ поддержка полей классов и других новшеств
Как это работает? ⚙
Babel использует плагины для преобразования разных частей современного синтаксиса JavaScript. Каждый плагин отвечает за определенную функциональность, например преобразование стрелочных функций, классов, шаблонных строк и т.д. Babel также может использовать пресеты (наборы плагинов) для комплексной поддержки разных версий JavaScript 👁🗨
🔥5👍2
Как добавить свойство в объект на JavaScript? 🔶
👉 Для этого можно воспользоваться:
➖ методом Object.assign, который объединит объект с новым свойством
➖ или Spread оператором: то есть переобъявить объект указав его в скобках с оператором перед ним и новым свойством через запятую
На скрине оба способа: в объекте было одно свойство
👉 Для этого можно воспользоваться:
➖ методом Object.assign, который объединит объект с новым свойством
➖ или Spread оператором: то есть переобъявить объект указав его в скобках с оператором перед ним и новым свойством через запятую
На скрине оба способа: в объекте было одно свойство
Name, мы добавили второе свойство Language методом Object.assign, затем добавили третье свойство Link благодаря переопределению объекта 👁🗨🔥4👍3
Классы – это способ определения объектов, их свойств и методов. Благодаря классам можно создавать объекты определенного стандарта ✴️
На примере кода со скрина есть класс programmer с конструктором, в котором есть свойство
Ниже был создан новый объект Codorum, которому был присвоен класс programmer. Теперь мы можем вызвать метод
Код со скрина:
На примере кода со скрина есть класс programmer с конструктором, в котором есть свойство
name и метод write 🧑💻Ниже был создан новый объект Codorum, которому был присвоен класс programmer. Теперь мы можем вызвать метод
write класса programmer от имени объекта Codorum 👁🗨Код со скрина:
class programmer {
constructor(name) { // конструктор класса
this.name = name; // свойствo класса
}
write() { // метод класса
console.log(`${this.name} пишет код`);
}
}
const Codorum = new programmer('Codorum');
Codorum.write(); // запуск метода объектом🔥3👍2❤1
🔘 Почему в JavaScript сравнение объектов через оператор "===" почти всегда возвращает false, даже если их содержимое одинаково?
Вопрос средней сложности ✴️
Вопрос средней сложности ✴️
Anonymous Quiz
4%
Потому что объекты перед сравнением неявно превращаются в строку
31%
Потому что оператор строгого сравнения "===" сравнивает только типы данных, но не значение
47%
Потому что объекты сравниваются по ссылке в памяти, а не по содержимому
18%
Потому что оператор строгого сравнения "===" не работает с объектами
👍4🔥2
В JavaScript есть метод Number, который конвертирует данные разного типа в числа 🔢
По примеру со скрина у нас были 2 переменные с boolean значениями: a ("true"), b ("false") 🚥
В следствии применения метода boolean значения переменных конвертировались в числовые значения: a ("1"), b ("0") 🔢
Казалось бы, применение метода на этом ограничивается, ведь если конвертировать строковое значение методом Number мы получим NaN, но методом Number мы также можем конвертировать данные связанные с датами в числа или даже объекты в числа 👁🗨
По примеру со скрина у нас были 2 переменные с boolean значениями: a ("true"), b ("false") 🚥
В следствии применения метода boolean значения переменных конвертировались в числовые значения: a ("1"), b ("0") 🔢
Казалось бы, применение метода на этом ограничивается, ведь если конвертировать строковое значение методом Number мы получим NaN, но методом Number мы также можем конвертировать данные связанные с датами в числа или даже объекты в числа 👁🗨
👍4🔥3
Пост для новичков канала 🖖
Рекомендуем посмотреть серию роликов Как написать сайт-визитку на ReactJS. Кому интересно — приятного просмотра ⚛️
Плейлист с частями доступен на нашем Ютуб канале Codorum 🪪
В рамках частей мы также рассмотрели интересные моменты html верстки 🟧, стилизации и создании разных CSS анимаций 🟦
Подробности в первой части — анонс макета и подготовка среды 👈 жми, чтобы посмотреть.
На финальный результат можно взглянуть в 20-й части 👈
Рекомендуем посмотреть серию роликов Как написать сайт-визитку на ReactJS. Кому интересно — приятного просмотра ⚛️
Плейлист с частями доступен на нашем Ютуб канале Codorum 🪪
В рамках частей мы также рассмотрели интересные моменты html верстки 🟧, стилизации и создании разных CSS анимаций 🟦
Подробности в первой части — анонс макета и подготовка среды 👈 жми, чтобы посмотреть.
На финальный результат можно взглянуть в 20-й части 👈
🔥4👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Якорь – это ссылка на страницу или элемент страницы, который создаётся тегом <a> в HTML ⚓️
Он может иметь атрибуты, такие как href, указывающий адрес ссылки либо id элемента текущей страницы/компонента для перехода к нему ↕️
В видео мы рассмотрели как можно стилизовать якорь в CSS под себя 👁🗨
А также как сделать плавный скролл. Для этого достаточно задать значение smooth в свойстве scroll-behavior корневого элемента html 🔸
Код из видео:
Он может иметь атрибуты, такие как href, указывающий адрес ссылки либо id элемента текущей страницы/компонента для перехода к нему ↕️
В видео мы рассмотрели как можно стилизовать якорь в CSS под себя 👁🗨
А также как сделать плавный скролл. Для этого достаточно задать значение smooth в свойстве scroll-behavior корневого элемента html 🔸
Код из видео:
// index.html
<div class="main">
<div class="btn">
<a href="#lastBlock">В конец</a>
</div>
<div class="card">
<p>блок 1</p>
</div>
<div class="card">
<p>блок 2</p>
</div>
<div id="lastBlock" class="card">
<p>блок 3</p>
</div>
</div>
/* index.css */
html {
scroll-behavior: smooth;
}
A {
text-decoration: none;
}
A:visited {
color: #f7f4ff;
}
👍4🔥4
Одно из важных отличий var от let в JavaScript – это область видимости Scope 🧿
Переменные, объявленные с помощью var видны не только на уровне блочного скоупа, а и на уровне локального или же функционального скоупа, вне зависимости от места где они были объявлены. А переменные, объявленные с помощью let видны только внутри блока кода, где были объявлены 🔦
На скрине есть функция с блоком if. Соответственно мы имеем 2 скоуп уровня: локальный скоуп функции и блочный скоуп блока if. Внутри блока if объявлены 2 переменные: одна через var, другая через let ℹ️
Запустив функцию переменная var будет выведена в консоль, значит она видна на уровне всего локального скоупа, а переменная let не будет определена ❗️
Но на практике уже мало кто использует var для объявления переменных в JavaScript 👁🗨
Переменные, объявленные с помощью var видны не только на уровне блочного скоупа, а и на уровне локального или же функционального скоупа, вне зависимости от места где они были объявлены. А переменные, объявленные с помощью let видны только внутри блока кода, где были объявлены 🔦
На скрине есть функция с блоком if. Соответственно мы имеем 2 скоуп уровня: локальный скоуп функции и блочный скоуп блока if. Внутри блока if объявлены 2 переменные: одна через var, другая через let ℹ️
Запустив функцию переменная var будет выведена в консоль, значит она видна на уровне всего локального скоупа, а переменная let не будет определена ❗️
Но на практике уже мало кто использует var для объявления переменных в JavaScript 👁🗨
👍4🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
useRef – это React хук, использующийся для создания ref-объектов, которые сохраняют переменные, остающиеся неизменными между компонентами рендеров ⚛
Хук useRef особенно полезен для доступа к DOM-элементам или хранения любых значений, которые могут изменяться в ходе жизненного цикла компонента, но не приводят к его перерендерированию 🔗
👉 В коде из гифки пример применения хука useRef для смещения фокуса на DOM-элемент:
➖ есть ref-объект
➖ функция
➖ ref-объект был привязал к одному из полей ввода и в итоге при нажатии на кнопку вызывается функция
Хук useRef особенно полезен для доступа к DOM-элементам или хранения любых значений, которые могут изменяться в ходе жизненного цикла компонента, но не приводят к его перерендерированию 🔗
👉 В коде из гифки пример применения хука useRef для смещения фокуса на DOM-элемент:
➖ есть ref-объект
inputRef с пустым значением➖ функция
focus с методом focus() для DOM-элемента➖ ref-объект был привязал к одному из полей ввода и в итоге при нажатии на кнопку вызывается функция
focus, которая смещает фокус на это поле ввода👍3🔥3
Рассмотрим тип объекта Array в JavaScript ⚜️
Array – это тип объекта, который служит для работы со списками значений 📒
Каждый элемент массива может представлять собой любой тип данных, включая числа, строки, объекты, другие массивы, функции и прочее 👁🗨
👉 Некоторые тонкости типа объектов Array:
➖ у всех элементов массива есть свой индекс начиная с нуля
➖ массивы имеют различные встроенные методы для манипулирования и обработки данных
➖ для работы с массивами есть такие операторы как Spread и Rest
Array – это тип объекта, который служит для работы со списками значений 📒
Каждый элемент массива может представлять собой любой тип данных, включая числа, строки, объекты, другие массивы, функции и прочее 👁🗨
👉 Некоторые тонкости типа объектов Array:
➖ у всех элементов массива есть свой индекс начиная с нуля
➖ массивы имеют различные встроенные методы для манипулирования и обработки данных
➖ для работы с массивами есть такие операторы как Spread и Rest
👍4🔥1
🔘 Что произойдет, если функцию-конструктор вызывать без оператора new в нестрогом режиме (non-strict mode) в JavaScript?
Вопрос высокой сложности 🅰️
Вопрос высокой сложности 🅰️
Anonymous Quiz
28%
Получим ошибку, поскольку наличие оператора new является обязательным
38%
Значение this внутри функции будет ссылаться на глобальный объект
9%
Функция создаст объект, но без прототипа
25%
В нестрогом режиме JavaScript автоматически добавит оператор new
👍2🔥2🤔1