Какое изначальное значение у CSS свойства vertical-align?
Anonymous Quiz
34%
normal
9%
middle
36%
baseline
4%
bottom
17%
top
Что такое NaN? Как проверить, является ли значение NaN?
NaN или Not A Number (не число) — это значение, получаемое в результате выполнения числовой операции над нечисловым значением:
ES6 для проверки, является ли значение NaN, рекомендует использовать метод Number.isNaN. Мы также можем написать вспомогательную функцию для решения проблемы «неравенства NaN самому себе»:
NaN или Not A Number (не число) — это значение, получаемое в результате выполнения числовой операции над нечисловым значением:
let aВ JS есть встроенный метод isNaN, позволяющий проверять, является ли значение NaN, но он ведет себя довольно странно:
console.log(parseInt('abc'))
console.log(parseInt(null))
console.log(parseInt(undefined))
console.log(parseInt(++a))
console.log(parseInt({} * 10))
console.log(parseInt('abc' - 2))
console.log(parseInt(0 / 0))
console.log(parseInt('10a' * 10))
console.log(isNaN()) // trueРезультатом всех console.log является true, несмотря на то, что ни одно из значений не является NaN.
console.log(isNaN(undefined)) // true
console.log(isNaN({})) // true
console.log(isNaN(String('a'))) // true
console.log(isNaN(() => { })) // true
ES6 для проверки, является ли значение NaN, рекомендует использовать метод Number.isNaN. Мы также можем написать вспомогательную функцию для решения проблемы «неравенства NaN самому себе»:
function checkIsNan(value){
return value !== value
}Как проверить, является ли значение массивом?
Для этого следует использовать метод Array.isArray:
Для этого следует использовать метод 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]'
}Каково значение свойства height у элемента div?
Anonymous Quiz
60%
100px
23%
200px
17%
100% viewport
Почему в представленном коде переменная b становится глобальной при вызове функции?
Эту проблему можно решить сначала объявив локальные переменные, а затем присвоив им значения:
function myFunc(){
let a = b = 0
}
myFunc()
Так происходит, потому что оператор присваивания ("=") имеет правостороннюю ассоциативность, т.е. присваивает значения справа налево. Поэтому код принимает следующий вид: myFunc(){
let a = (b = 0)
}
myFunc()
Сначала значение 0 присваивается переменной «b», которая не объявлена. Движок JS делает ее глобальной. Возвращаемое выражением b = 0 значение (0) затем присваивается локальной переменной «a».Эту проблему можно решить сначала объявив локальные переменные, а затем присвоив им значения:
function myFunc(){
let a, b
a = b = 0
}
myFunc()Программирование приложений на JavaScript
Эту книгу написал Эрик Эллиот. Это лучший выбор для вас, если вы хотите узнать, как добавлять фронтенд- и бэкенд-свойства в большое веб-приложение. В этой книге вы прочтете о лучших приемах организации кода и узнаете, как можно повторно использовать ваш код. В книге также описываются способы тестирования, интегрирования и развертывания обновлений программного обеспечения.
Эту книгу написал Эрик Эллиот. Это лучший выбор для вас, если вы хотите узнать, как добавлять фронтенд- и бэкенд-свойства в большое веб-приложение. В этой книге вы прочтете о лучших приемах организации кода и узнаете, как можно повторно использовать ваш код. В книге также описываются способы тестирования, интегрирования и развертывания обновлений программного обеспечения.
JavaScript. Основы
Это один из бестселлеров по JavaScript. Автор книги — Пол Уилтон. Книга предназначена для новичков. Это одно из самых обновляемых руководств. «JavaScript. Основы» охватывает много продвинутых тем, включая новые элементы HTML5 и их API, JSON, функции, события, новые свойства геолокации и многое другое.
Это один из бестселлеров по JavaScript. Автор книги — Пол Уилтон. Книга предназначена для новичков. Это одно из самых обновляемых руководств. «JavaScript. Основы» охватывает много продвинутых тем, включая новые элементы HTML5 и их API, JSON, функции, события, новые свойства геолокации и многое другое.
Как можно работать с датой в JS?
Встроенный объект: Date содержит дату и время, а также предоставляет методы управления ими.
Для создания нового объекта Date нужно вызвать конструктор new Date() с одним из следующих аргументов:
year должен состоять из четырёх цифр: значение 2013 корректно, 98 – нет.
month начинается с 0 (январь) по 11 (декабрь).
Параметр date здесь представляет собой день месяца. Если параметр не задан, то принимается значение 1.
Если параметры hours/minutes/seconds/ms отсутствуют, их значением становится 0.
Встроенный объект: Date содержит дату и время, а также предоставляет методы управления ими.
Для создания нового объекта Date нужно вызвать конструктор new Date() с одним из следующих аргументов:
new Date()Без аргументов – создать объект Date с текущими датой и временем:
new Date(milliseconds)Создать объект Date с временем, равным количеству миллисекунд (тысячная доля секунды), прошедших с 1 января 1970 года UTC+0.
new Date(datestring)Если аргумент всего один, и это строка, то из неё «прочитывается» дата.
let date = new Date("2017-01-26");
alert(date);
// Время не указано, поэтому оно ставится в полночь по Гринвичу и
// меняется в соответствии с часовым поясом места выполнения кода
// Так что в результате можно получить
// Thu Jan 26 2017 11:00:00 GMT+1100 (восточно-австралийское время)
// или
// Wed Jan 25 2017 16:00:00 GMT-0800 (тихоокеанское время)
new Date(year, month, date, hours, minutes, seconds, ms)
Создать объект Date с заданными компонентами в местном часовом поясе. Обязательны только первые два аргумента.year должен состоять из четырёх цифр: значение 2013 корректно, 98 – нет.
month начинается с 0 (январь) по 11 (декабрь).
Параметр date здесь представляет собой день месяца. Если параметр не задан, то принимается значение 1.
Если параметры hours/minutes/seconds/ms отсутствуют, их значением становится 0.
Зачем себя ограничивать?
Фронтедеры востребованы, но фулстеки Python / Frontend выглядят привлекательней.
Один такой спец может взять на себя приложение целиком, и работодатели готовы платить ему круглую сумму.
Тут за 12 месяцев вы выучите:
- Веб-вёрстку
- Javanoscript
- Python
- Angular, React, Vue на выбор
Во время обучения вы напишете 4 дипломных проекта для вашего резюме, а первый платеж - только через полгода
Фронтедеры востребованы, но фулстеки Python / Frontend выглядят привлекательней.
Один такой спец может взять на себя приложение целиком, и работодатели готовы платить ему круглую сумму.
Тут за 12 месяцев вы выучите:
- Веб-вёрстку
- Javanoscript
- Python
- Angular, React, Vue на выбор
Во время обучения вы напишете 4 дипломных проекта для вашего резюме, а первый платеж - только через полгода
Что такое DocumentFragment?
DocumentFragment — это контейнер, который может содержать произвольное количество элементов DOM. Если совсем по-простому, можно представлять его себе как ведро. Элементы складываются в него, чтобы в нужный момент их можно было разом вывалить куда надо.
Как создать?
Хранение кусков HTML, не имеющих общего предка.
Бывают ситуации, когда нам нужно заменить содержимое элемента, но сам элемент не трогать. Допустим, мы используем делегирование событий, и все обработчики событий, происходящих на внутренних элементах, навешены на внешний div. В таком случае нам идеально подойдёт DocumentFragment:
DocumentFragment — это контейнер, который может содержать произвольное количество элементов DOM. Если совсем по-простому, можно представлять его себе как ведро. Элементы складываются в него, чтобы в нужный момент их можно было разом вывалить куда надо.
Как создать?
var fragment = document.createDocumentFragment();И зачем он нужен?
Хранение кусков HTML, не имеющих общего предка.
Бывают ситуации, когда нам нужно заменить содержимое элемента, но сам элемент не трогать. Допустим, мы используем делегирование событий, и все обработчики событий, происходящих на внутренних элементах, навешены на внешний div. В таком случае нам идеально подойдёт DocumentFragment:
div.innerHTML = "";
div.appendChild(fragmentWithAllContent);