В преддверии старта курса "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) undefinedundefined

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".

ЗАБРАТЬ СКИДКУ