Пятница 13
Так как пятница 13 считается несчастливым днем, вам обязательно нужно к ним подготовиться.
Для этого напишите функцию, которая принимает текущий год и возвращает количество пятниц 13 в этом году
Примеры
Так как пятница 13 считается несчастливым днем, вам обязательно нужно к ним подготовиться.
Для этого напишите функцию, которая принимает текущий год и возвращает количество пятниц 13 в этом году
Примеры
unluckyDays(2015) == 3
unluckyDays(1986) == 1
Почему typeof null возвращает object? Как проверить, является ли значение null?
typeof null == 'object' всегда будет возвращать true по историческим причинам. Поступало предложение исправить эту ошибку, изменив typeof null = 'object' на typeof null = 'null', но оно было отклонено в интересах сохранения обратной совместимости (такое изменение повлекло бы за собой большое количество ошибок).
Для проверки, является ли значение null можно использовать оператор строгого равенства (===):
typeof null == 'object' всегда будет возвращать true по историческим причинам. Поступало предложение исправить эту ошибку, изменив typeof null = 'object' на typeof null = 'null', но оно было отклонено в интересах сохранения обратной совместимости (такое изменение повлекло бы за собой большое количество ошибок).
Для проверки, является ли значение null можно использовать оператор строгого равенства (===):
function isNull(value){
return value === null
}Что такое запоминание или мемоизация (Memoization)?
Мемоизация — это прием создания функции, способной запоминать ранее вычисленные результаты или значения. Преимущество мемоизации заключается в том, что мы избегаем повторного выполнения функции с одинаковыми аргументами. Недостатком является то, что мы вынуждены выделять дополнительную память для сохранения результатов.
Пример:
Мемоизация — это прием создания функции, способной запоминать ранее вычисленные результаты или значения. Преимущество мемоизации заключается в том, что мы избегаем повторного выполнения функции с одинаковыми аргументами. Недостатком является то, что мы вынуждены выделять дополнительную память для сохранения результатов.
Пример:
function memoize(fn){
const cache = {}
return function(param){
if(cache[param]){
console.log('cached')
return cache[param]
} else{
let result = fn(param)
cache[param] = result
console.log('not cached')
return result
}
}
}
const toUpper = (str = '') => str.toUpperCase()
const toUpperMemoized = memoize(toUpper)
toUpperMemoized('abcdef')
toUpperMemoized('abcdef') // не выполнитсяВ чем разница между обычной функцией и функциональным выражением?
Допустим, у нас есть следующее:
Допустим, у нас есть следующее:
hoistedFunc()
notHoistedFunc()
function hoistedFunc(){
console.log('I am hoisted')
}
var notHoistedFunc = function(){
console.log('I will not be hoisted!')
}
Вызов notHoistedFunc приведет к ошибке, а вызов hoistedFunc нет, потому что hoistedFunc «всплывает», поднимается в глобальную область видимости, а notHoistedFunc нет.Какое изначальное значение у CSS свойства list-style-type?
Anonymous Quiz
10%
decimal
6%
lower-roman
9%
square
29%
disc
2%
lower-greek
43%
circle
В чем разница между оператором «in» и методом hasOwnProperty?
Отличие состоит в том, что оператор «in» проверяет наличие свойства не только в самом объекте, но и в его прототипах, а метод hasOwnProperty — только в объекте.
Отличие состоит в том, что оператор «in» проверяет наличие свойства не только в самом объекте, но и в его прототипах, а метод hasOwnProperty — только в объекте.
console.log('prop' in o) // true
console.log('toString' in o) // true
console.log(o.hasOwnProperty('prop')) // true
console.log(o.hasOwnProperty('toString')) // falseКакое значение нельзя задать свойству justify-content?
Anonymous Quiz
85%
justify
3%
space-between
5%
center
4%
space-around
2%
flex-start
1%
flex-end
Данная книга посвящена тому, как на языке JavaScript создавать хороший код для фронтенда (и не только). В книге последовательно затронуты все аспекты производства JavaScript-кода: от выбора архитектуры и конструирования кода до покрытия модульными тестами, отладки, интеграционного тестирования, сборки и непрерывной поставки вашего кода. Рассматриваются как общие моменты — постановка процесса разработки, событийно-ориентированная архитектура JavaScript-приложений, техника непрерывной интеграции, так и предельно конкретные вопросы — как и какие инструменты (фреймворки) использовать для той или иной задачи, что конкретное нужно делать в том или ином случае, какие ошибки встречаются. Попутно в книге рассмотрено применение большого количества инструментов. Существенное внимание уделено автоматизации на всех этапах создания и поставки JavaScript-кода.
Пробелы
Напишите функцию, которая проверяет строку на правильность расставленных пробелов.
То есть между словами должен находиться пробел, а также не должно быть пробелов перед строкой и после неё.
Примеры:
Напишите функцию, которая проверяет строку на правильность расставленных пробелов.
То есть между словами должен находиться пробел, а также не должно быть пробелов перед строкой и после неё.
Примеры:
'Hello world' = true
' Hello world' = false
'Hello world ' = false
'Hello world' = false
'Hello' = true
'Helloworld' = true
' ' = false
'' = trueКакие приемы работы с асинхронным кодом в JS Вы знаете?
1. Функции обратного вызова (Callbacks).
2. Промисы (Promises).
3. Async/await.
Функция async может содержать выражение await, которое приостанавливает выполнение функции async и ожидает ответа от переданного Promise, затем возобновляя выполнение функции async и возвращая полученное значение.
1. Функции обратного вызова (Callbacks).
function loadScript(src, callback) {
let script = document.createElement('script');
script.src = src;
script.onload = () => callback(script);
document.head.append(script);
}
Смысл такой: вторым аргументом передаётся функция (обычно анонимная), которая выполняется по завершении действия.2. Промисы (Promises).
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('foo');
}, 300);
});
promise1.then((value) => {
console.log(value);
// expected output: "foo"
});
Promise представляет собой обертку для значения, неизвестного на момент создания промиса. Он позволяет обрабатывать результаты асинхронных операций так, как если бы они были синхронными: вместо конечного результата асинхронного метода возвращается обещание (промис) получить результат в некоторый момент в будущем.3. Async/await.
function resolveAfter2Seconds(x) {
return new Promise(resolve => {
setTimeout(() => {
resolve(x);
}, 2000);
});
}
async function add1(x) {
const a = await resolveAfter2Seconds(20);
const b = await resolveAfter2Seconds(30);
return x + a + b;
}
После вызова функция async возвращает Promise.Функция async может содержать выражение await, которое приостанавливает выполнение функции async и ожидает ответа от переданного Promise, затем возобновляя выполнение функции async и возвращая полученное значение.