Набор вопросов JavaScript с несколькими вариантами ответов для проверки (и расширения) ваших знаний доступен на GitHub. Вопросы варьируются от базовых до продвинутых.
Вопросы ежедневно публикуются в Instagram Лидией Халли, которая описывает себя как 21-летнего разработчика программного обеспечения на React, Node, GraphQL и AWS. Идея в том, что вопросы позволяют вам проверить, насколько хорошо вы знаете JavaScript, немного освежить свои знания или подготовиться к собеседованию по кодированию.
Раз в неделю репозиторий GitHub обновляется вопросами за эту неделю. Каждый вопрос имеет форму вопроса, показывающего некоторый код, четыре возможных варианта ответа и ответ, скрытый в свернутом разделе под вопросом.
Так, например, один из вопросов этой недели спрашивает:
Какой результат:
function sayHi() {
console.log(name);
console.log(age);
var name = "Lydia";
let age = 21;
}
sayHi();
И дает вам выбор из возможных ответов:
- A:
Lydia
andundefined
- B:
Lydia
andReferenceError
- C:
ReferenceError
and21
- D:
undefined
andReferenceError
Ответы больше, чем просто правильный выбор; в случае вопроса выше, Хэлли говорит:
Ответ: D
Внутри функции мы сначала объявляем переменную name с ключевым словом var. Это означает, что переменная поднимается (пространство памяти настраивается на этапе создания) со значением по умолчанию undefined, пока мы не дойдем до строки, где мы определяем переменную. Мы еще не определили переменную в строке, где мы пытаемся записать переменную имени, поэтому она по-прежнему содержит значение undefined.
Переменные с ключевым словом let (и const) поднимаются, но, в отличие от var, не инициализируются. Они недоступны до строки, в которой мы их объявляем (инициализируем). Это называется «временной мертвой зоной». Когда мы пытаемся получить доступ к переменным до их объявления, JavaScript выдает ошибку ReferenceError.
Это забавное чтение, если вы хотите напрячь свой мозг и поддерживать свои навыки JavaScript в актуальном состоянии.