В преддверии старта курса "React.js Developer" приглашаем будущих студентов и всех желающих посмотреть открытый вебинар на тему "Пишем приложение на React+Redux".
А сейчас предлагаем пройти квиз на знание JavaScript.
Насколько хорошо вы знаете JavaScript? Стремитесь ли к профессиональному росту?
Я составил викторину из 10 вопросов по JavaScript. Посмотрим, сможете ли вы ответить на них, не используя консоль браузера. Надеюсь, вы узнаете что-то новенькое. Ответы даны в конце статьи.
1. Что этот код выведет на консоль?
var bar = null;
console.log(typeof bar === "object");
a) false
b) true
c) null
d) будет выдана ошибка
2. Что этот код выведет на консоль?
(function(){
var a = b = 3;
})();
console.log("a defined? " + (typeof a !== 'undefined'));
console.log("b defined? " + (typeof b !== 'undefined'));
a) true, false
b) false, true
c) true, true
d) false, false
3. В React все является ____ .
a) модулем
b) компонентом
c) пакетом
d) классом
4. От чего отказались в последних версиях React?
a) componentWillMount
b) JavaScript
c) componentDidMount
d) от приглашений на Facebook
5. Что такое Babel?
a) транспайлер
b) компилятор
c) интерпретатор
d) компилятор и транспайлер
6. Что такое виртуальная DOM?
a) точная HTML-копия реальной DOM
b) встроенный компонент браузера
c) объект JavaScript, содержащий элементы и данные
d) строка JSON, содержащая элементы и данные, возвращаемые из метода react.render
7. Какое их следующих утверждений не относится к рендерингу виртуальной DOM?
a) Реализация виртуальной DOM всегда оказывается быстрее, чем манипуляции с DOM.
b) Если что-то меняется, выполняется повторный рендер всего пользовательского интерфейса в виртуальной DOM.
c) Перерисовка DOM — самая медленная часть рендера.
d) После повторного рендера в реальную DOM вносятся только необходимые изменения.
8. Верно или неверно утверждение ниже?
useLayoutEffect
запускается после рендера React-компонента и гарантирует, что обратный вызов эффекта не заблокирует отрисовку.
9. Какое из перечисленных ниже слов не является зарезервированным словом в JavaScript?
a) default
b) throw
c) finally
d) undefined
10. Что вернут эти функции?
function foo1() {
return {
bar: 'hello'
};
}
function foo2() {
return
{
bar: 'hello'
};
}
a) undefined
, { bar: “hello” }
b) { bar: “hello” }
, undefined
c) undefined
, undefined
d) { bar: “hello” }
, { bar: “hello” }
Ответы
Вопрос 1
b) Многие часто забывают, что null
является объектом. Поэтому при проверке типа аргумента с помощью оператора typeof
нужно также проверять, что переменной не присвоено значение null
.
Вопрос 2
b) Здесь переменная b
объявляется в глобальной области, но переменная a
— внутри функции. Поэтому b = 3; a = undefined
. Чтобы этого избежать, используйте строгий режим (use strict
).
Вопрос 3
b) В React все является компонентом — это основные конструктивные блоки веба.
Вопрос 4
a) Да, это уже анонсировали. Нам придется перестать использовать этот метод.
Вопрос 5
d) Это спорно, но на сайте Babel написано, что это компилятор. Вопрос в том, является ли транспайлер компилятором.
Вопрос 6
c) Виртуальная DOM — это просто объект JavaScript, содержащий все данные, которые нам нужно сравнивать с данными реальной DOM.
Вопрос 7
a) Ее вполне можно сделать медленнее. Старайтесь не использовать глубоко вложенные объекты, а при необходимости используйте функцию мемоизации.
Вопрос 8
Неверно. Это делает хук useEffect
.
Вопрос 9
d) undefined
не является зарезервированным словом, его можно переназначить.
Вопрос 10
b) После оператора return
необходимо указывать возвращаемое значение в той же строке, иначе автоматически подразумевается точка с запятой.
Надеюсь, вам понравились вопросы. Если вы чего-то не знали — здорово! Это значит, что вы почерпнули что-то новое.
Готовы ко второй части викторины? Переходите!
Узнать подробнее о курсе "React.js Developer".
Посмотреть открытый урок "Пишем приложение на React+Redux".