CodeRoll | Frontend
5.34K subscribers
1.49K photos
62 videos
1 file
739 links
— Лучшее для разработчика и дизайнера / IT инструменты, курсы и книги
— Веб-разработка на JS, HTML, CSS, React, Vue,Angular

Купить рекламу: https://telega.in/c/coderoll

Чат: https://t.me/coderoll_chat

По всем вопросам пишите сюда - @yankovsky_ads
Download Telegram

const result =
[[0, 1], [2, 3]].reduce(
(acc, cur) => {
return acc.concat(cur)
},
[1, 2]
)

console.log(result)
Что будет в консоли ?
Anonymous Quiz
24%
[0, 1, 2, 3, 1, 2]
5%
[6, 1, 2]
67%
[1, 2, 0, 1, 2, 3]
4%
[1, 2, 6]
Пояснение к ответу

[1, 2] - начальное значение переменной acc. После первого прохода acc равняется [1, 2], а cur - [0, 1]. После конкатенации (объединения) acc равняется [1, 2, 0, 1], а cur - [2, 3]. После их объединения, мы получаем [1, 2, 0, 1, 2, 3].

console.log(!!null)
console.log(!!"")
console.log(!!1)
Пояснение к ответу

null - это false. !null возвращает true. !true возвращает false. "" - это false. !"" возвращает true. !true возвращает false. 1 - это true. !1 возвращает false. !false возвращает true.
function* generator(i) {
yield i
yield i * 2
}

const gen = generator(10)

console.log(gen.next().value)
console.log(gen.next().value)
Что будет в консоли ?
Anonymous Quiz
11%
[0, 10] и [10, 20]
12%
20 и 20
69%
10 и 20
7%
0, 10 и 10, 20
Пояснение к ответу

Выполнение обычных функций не может быть остановлено после их запуска. Однако, генераторы можно останавливать в процессе выполнения, а затем продолжать с места остановки. Каждый раз, когда в функции-генераторе встречается ключевое слово yield, функция возвращает значение, указанное после него. Обратите внимание, что в генераторе вместо return используется yield. Сначала мы инициализируем генератор с i равным 10. Мы вызываем генератор, используя метод next. Когда мы в первый раз вызываем генератор, iравняется 10. Движок JavaScriptвстречает первое ключевое слово yieldи возвращает значение i. После этого выполнение функции приостанавливается и 10 выводится в консоль. Затем мы снова вызываем функцию посредством next(). Она запускается с того места, где остановилась, с i равным 10. Движок встречает следующее ключевое слово yield и возвращает i * 2. iравно 10, поэтому возвращается 20.

const firstPromise = new Promise((res, rej) => {
setTimeout(res, 500, "one")
})

const secondPromise = new Promise((res, rej) => {
setTimeout(res, 100, "two")
})

Promise.race([firstPromise, secondPromise]).then(res => console.log(res))
Что будет в консоли ?
Anonymous Quiz
8%
one
46%
two
30%
two one
16%
one two
Пояснение к ответу

Когда мы передаем несколько промисов методу race, он возвращает первый разрешенный (выполненный или отклоненный) промис. В функцию setTimeout мы передаем задержку в 500 мс для первого промиса и в 100 мс - для второго. Это означает, что secondPromise разрешается первым со значением two. Переменная res имеет значение two, которое и выводится в консоль.

let person = { name: "John" }
const members = [person]
person = null

console.log(members)
Что будет в консоли ?
Anonymous Quiz
18%
null
40%
[null]
4%
[{}]
38%
[{ name: "John" }]
Пояснение к ответу

Сначала мы объявляем переменную person со значением объекта, содержащего свойство name. Затем мы объявляем переменную members. Мы делаем первый элемент этого массива равным [person]. Объекты взаимодействуют посредством ссылок при установке их равными друг другу. Когда мы назначаем ссылку из одной переменной в другую, создается копия этой ссылки (обратите внимание, что у этих переменных не одинаковые ссылки). Затем мы присваиваем переменной person значение null. Мы изменили только значение person, а не первый элемент массива, поскольку этот элемент имеет другую (скопированную) ссылку на объект. Первый элемент в members по-прежнему содержит ссылку на исходный объект. Когда мы выводим в консоль массив members, первый элемент этого массива содержит значение объекта, который и выводится в консоль.
Основы программирования на примере исходного кода MobX

Изучите ключевые концепции программирования, лежащие в основе популярной JavaScript-библиотеки MobX. Понимание этих концепций поможет вам применить лучшие практики программирования в работе.

Ссылка

#статьи

const person = {
name: "John",
age: 30
}

for (const item in person) {
console.log(item)
}
Пояснение к ответу

С помощью цикла for..in мы перебираем ключи объекта, в данном случае name и age. Ключи объекта (кроме Symbol) являются строками. В каждом цикле мы устанавливаем значение item равным текущему ключу, по которому он перебирается. Сначала item равен name, и выводится в консоль. Затем item равен age, что также выводится в консоль.
This media is not supported in your browser
VIEW IN TELEGRAM
👨‍💻 Изучаешь Frontend? Я тоже!

idk Frontend - канал, в котором я максимально подробно конспектирую весь мой путь обучения с самого старта.

С меня:
— Сложная теория простым языком;
— Практические примеры и объяснения;
— Крутые викторины по JS и шпаргалки;
— Работа над ошибками.

С тебя:
— Подписка @idk_frontend

Продолжим обучаться вместе! 👋
Please open Telegram to view this post
VIEW IN TELEGRAM