Что такое Service Workers?
Говоря простыми словами, это сценарий, который запускается браузером в фоновом режиме. Он никак не связан с веб-страницей или DOM и предоставляет функции “из коробки”, такие как обработка сетевых запросов, push-уведомления и фоновая синхронизация. Service workers обеспечивают возможность работы offline.
Service worker — посредник между клиентом и сервером, пропускающий через себя все запросы к серверу. С его помощью можно перехватывать все запросы “на лету”.
👉 @frontendInterview
Говоря простыми словами, это сценарий, который запускается браузером в фоновом режиме. Он никак не связан с веб-страницей или DOM и предоставляет функции “из коробки”, такие как обработка сетевых запросов, push-уведомления и фоновая синхронизация. Service workers обеспечивают возможность работы offline.
Service worker — посредник между клиентом и сервером, пропускающий через себя все запросы к серверу. С его помощью можно перехватывать все запросы “на лету”.
👉 @frontendInterview
Что такое делегирование событий (Event Delegation)?
Делегирование событий является полезным шаблоном, так как позволяет отслеживать события на множестве элементов с помощью только одного обработчика.
Для работы делегирования событий нужно 3 шага:
1. Определить родителя элементов для отслеживания событий
2. Прикрепить на него обработчик событий
3. Использовать
👉 @frontendInterview
Делегирование событий является полезным шаблоном, так как позволяет отслеживать события на множестве элементов с помощью только одного обработчика.
Для работы делегирования событий нужно 3 шага:
1. Определить родителя элементов для отслеживания событий
2. Прикрепить на него обработчик событий
3. Использовать
event.target для выбора целевого элемента👉 @frontendInterview
Веб-дизайн для начинающих. HTML, CSS, jаvanoscript и веб-графика
Книга поможет освоить веб-дизайн, не имея опыта. На практических примерах показано, как создать простой сайт и постепенно его совершенствовать. Рассказано о создании веб-страниц, содержащих текст, ссылки, изображения, таблицы и формы. Описано применение CSS для создания и выбора цвета, фона, форматирования текста, макетирования страниц и выполнения простой анимации. Даны основы JS и подчеркнута его важность в веб-дизайне. Описано создание, оптимизация и сокращение времени загрузки веб-изображений.
👉 @frontendInterview
Книга поможет освоить веб-дизайн, не имея опыта. На практических примерах показано, как создать простой сайт и постепенно его совершенствовать. Рассказано о создании веб-страниц, содержащих текст, ссылки, изображения, таблицы и формы. Описано применение CSS для создания и выбора цвета, фона, форматирования текста, макетирования страниц и выполнения простой анимации. Даны основы JS и подчеркнута его важность в веб-дизайне. Описано создание, оптимизация и сокращение времени загрузки веб-изображений.
👉 @frontendInterview
❤1
Detect Pangram
Панграмма — короткий текст, использующий все буквы алфавита.
Создайте функцию, которая проверит, является ли строка панграммой.
Пример:
В предложении "The quick brown fox jumps over the lazy dog" есть все буквы от A до Z.
👉 @frontendInterview
Панграмма — короткий текст, использующий все буквы алфавита.
Создайте функцию, которая проверит, является ли строка панграммой.
Пример:
В предложении "The quick brown fox jumps over the lazy dog" есть все буквы от A до Z.
👉 @frontendInterview
Что такое объектная обертка (Wrapper Objects)?
Примитивы строка, число и boolean имеют свойства и методы, несмотря на то, что они не являются объектами:
Причина такого поведения заключается в том, что name временно преобразуется в объект. У каждого примитива, кроме null и undefined, есть объект-обертка. Такими объектами являются String, Number, Boolean, Symbol и BigInt. В нашем случае код принимает следующий вид:
👉 @frontendInterview
Примитивы строка, число и boolean имеют свойства и методы, несмотря на то, что они не являются объектами:
let name = 'marko'Name — это строка (примитивный тип), у которого нет свойств и методов, но когда мы вызываем метод toUpperCase(), это приводит не к ошибке, а к «MARKO».
console.log(typeof name) // string
console.log(name.toUpperCase()) // MARKO
Причина такого поведения заключается в том, что name временно преобразуется в объект. У каждого примитива, кроме null и undefined, есть объект-обертка. Такими объектами являются String, Number, Boolean, Symbol и BigInt. В нашем случае код принимает следующий вид:
console.log(new String(name).toUpperCase()) // MARKOВременный объект отбрасывается по завершении работы со свойством или методом.
👉 @frontendInterview
Пссс, хочешь подарочек?😏
Вот тебе канал со сливами дорогостоящих топовых курсов и литературы:
Букич IT
Быстренько подписывайся и сохраняй материалы, пока SkillFactory, GeekBrains, Яндекс.Практикум и другие авторы не снесли данный канал.
Вот тебе канал со сливами дорогостоящих топовых курсов и литературы:
Букич IT
Быстренько подписывайся и сохраняй материалы, пока SkillFactory, GeekBrains, Яндекс.Практикум и другие авторы не снесли данный канал.
В чем разница между явным и неявным преобразованием или приведением к типу (Implicit and Explicit Coercion)?
Неявное преобразование — это способ приведения значения к другому типу без нашего ведома (участия).
Предположим, у нас есть следующее:
Результатом второго console.log будет 1. False было преобразовано в 0, true — в 1. 0 + 1 = 1.
Результатом третьего console.log будет 12. Строка 2 была преобразована в число перед умножением на 6.
Явное преобразование предполагает наше участие в приведении значения к другому типу:
Неявное преобразование — это способ приведения значения к другому типу без нашего ведома (участия).
Предположим, у нас есть следующее:
console.log(1 + '6')Результатом первого console.log будет 16. В других языках это привело бы к ошибке, но в JS 1 конвертируется в строку и конкатенируется (присоединяется) c 6. Мы ничего не делали, преобразование произошло автоматически.
console.log(false + true)
console.log(6 * '2')
Результатом второго console.log будет 1. False было преобразовано в 0, true — в 1. 0 + 1 = 1.
Результатом третьего console.log будет 12. Строка 2 была преобразована в число перед умножением на 6.
Явное преобразование предполагает наше участие в приведении значения к другому типу:
console.log(1 + parseInt('6'))
В этом примере мы используем parseInt для приведения строки 6 к числу, затем складываем два числа и получаем 7.Как проверить, является ли значение массивом?
Для этого следует использовать метод Array.isArray:
👉 @frontendInterview
Для этого следует использовать метод Array.isArray:
console.log(Array.isArray(5)) // falseЕсли среда, в которой Вы работаете, не поддерживает данный метод, можете использовать такой полифил:
console.log(Array.isArray('')) // false
console.log(Array.isArray()) // false
console.log(Array.isArray(null)) // false
console.log(Array.isArray( {length: 5 })) // false
console.log(Array.isArray([])) // true
function isArray(value){
return Object.prototype.toString.call(value) === '[object Array]'
}👉 @frontendInterview
Программирование без дураков
Хотите научиться программировать "less wrong"? Тогда эта книга - для вас. Ведь программирование - это во многом коммуникация. Стиль программирования, именование, комментирование, работа с чужим кодом - зачастую соглашения складываются именно там, где строгая регламентация на уровне языка программирования отсутствует.
👉 @frontendInterview
Хотите научиться программировать "less wrong"? Тогда эта книга - для вас. Ведь программирование - это во многом коммуникация. Стиль программирования, именование, комментирование, работа с чужим кодом - зачастую соглашения складываются именно там, где строгая регламентация на уровне языка программирования отсутствует.
👉 @frontendInterview