Недавно я участвовал в реакционном хакатоне, организованном Clever-tap. Я многому научился, пока пытался ответить на вопросы. В этой статье я поделюсь вопросом, с которым столкнулся во время хакатона.

Q1. Как мы можем настроить область видимости файла cookie?
Ответ:
Атрибуты Domain и Path определяют область файла cookie. "Читать далее".

Вопрос 2. Что будет напечатано в консоли?

Правильный ответ для приведенного выше кода:
.

.

C) ‘0|не определено|2’

Давайте посмотрим, как. Но перед этим давайте поправим код и напишем его красиво.

Вопрос 3. Оператор a===b относится к ?
a). И a, и b равны по значению, типу и ссылочному адресу
b). И a, и b равны по значению и типу
c). И a, и b равны по value
d). Неверный оператор
.

.

Правильный ответ: b). И a, и b равны по значению и типу. === Сравнивает только значение и тип, никогда не сравнивает ссылку.

Q4. Что будет напечатано в консоли.

Таким образом, этот вопрос проверяет знание области действия и приоритета области действия. В приведенном выше коде приоритет будет отдан внутреннему x, и, следовательно, undefined будет зарегистрирован в консоли.

В5. Что будет напечатано в консоли?

.

.

.

Этот Вопрос пытается проверить знание области действия, подъема, IIFE, объявления переменных. В консоли будет напечатано undefined. Потому что срок службы a и b только внутри этого IIFE.

Вопрос 6. Как вставить многострочный комментарий в JS?
Ответ: /* ……. Что-либо */

Q7. Что будет напечатано в консоли?

Так что это было очень интересно. Я был очень смущен этим. Этот вопрос проверял знания в области определения, подъема и переопределения возможностей JS.

.

.

.
Таким образом, правильный ответ для этого d. п п п . Поскольку в JS объявление функции поднимается, последнее объявление переопределяет первое.

В.8. В синтаксисе переключателя выражение сравнивается с метками case, используя какой из следующих операторов?

Этот вопрос пытается проверить понимание работы переключателя. Это очень интересный вопрос. Увидев этот вопрос, я подумал, действительно ли я знаю, как работает переключатель в JS.

Прежде чем ответить на вопрос выше, позвольте мне поделиться другим вопросом:

Что будет напечатано в консоли?

.

.

.
Пожалуйста, попробуйте сами ответить на вышеуказанный вопрос. :)

Вопрос 9. СИМВОЛЫ. Какие из следующих правильны?

а. Символ является производным типом в JS
b. Символ автоматически преобразуется в строку с помощью приведения
c. Свойства символа, определенные в объекте, участвуют в цикле for ..in
d. Символ используется для добавления уникальных ключей свойств к объекту
.

.

.

Символы появились в ES6, и основная их цель — предоставить уникальные ключи свойств.
Подробнее о символах можно прочитать здесь.

В.10. Что будет напечатано в консоли?

Это очень популярный, а также распространенный вопрос в наши дни. Об этом спрашивают почти все.
Этот вопрос проверяет знание области видимости и подъема в JS.
.

.

.
Вывод приведенного выше кода будет 4,4,4,4, потому что после завершения цикла значение i будет 4, а поскольку мы используем var для объявления переменной, ее значение захватывается всеми экземплярами setTimeout и, наконец, 4,4,4,4 будет напечатано.
.
Можете ли вы исправить код, чтобы он печатал 0,1,2,3
.
.
Здесь я даю два способа чтобы исправить это:

В.11. Что будет напечатано в консоли?

Этот вопрос не так прост, как кажется. Он проверяет концепцию на предмет хостинга и закрытия.
.

.

.
Правильный ответ на этот вопрос: c. 10 .
.

.

.
Если вы знаете причину как? Вы на правильном пути в изучении JS. Если нет, то вот объяснение:

Каждая функция, возвращаемая в цикле for, создает замыкание переменной i. Узнайте больше о закрытии здесь.
И переменная i объявлена ​​с использованием var, что делает ее доступной для всей функции. И когда мы вызываем функцию, используя funcs[5](), она возвращает значение i, равное 10.

В.12. Что будет напечатано в консоли?

.

.

.
Правильный ответ: б. правда ложь
Как?

Q. 13 В чем основное отличие b.w. localStorage и sessionStorage?
а. срок службы
б. область применения
c. как a, так и b
d. место хранения
.

.

.

Итак, основное отличие заключается в продолжительности жизни. Хранилище сеансов исчезает, как только пользователь закрывает браузер, в то время как localStorage сохраняется.

В.14. Что будет напечатано в консоли?

Это был мой любимый вопрос среди всех. Этот вопрос проверяет ваше понимание цикла событий.
.

.

.

Правильный ответ c. 1 4 3 2

Как ?

Цикл событий проверяет наличие задачи во многих очередях задач. Некоторыми очередями задач являются очередь задач рендеринга, очередь микрозадач и очередь обратного вызова.

Первые две консоли будут напечатаны сразу 1 и 4. Теперь бой ч.б. setTimeout и обещание.

Обещание, являющееся микрозадачей, войдет в очередь микрозадач и будет выполнено перед очередью обратного вызова. В результате получается последовательность 1 4 3 2.

После хакатона мне стало ясно, какие вещи требуют большего внимания. Я надеюсь, что эти вопросы также заставят вас выбрать новые вещи для изучения.