Skip to content

Instantly share code, notes, and snippets.

@vanya2h
Last active July 7, 2018 08:27
Show Gist options
  • Save vanya2h/f158366a645a1668f95e636aef35a59e to your computer and use it in GitHub Desktop.
Save vanya2h/f158366a645a1668f95e636aef35a59e to your computer and use it in GitHub Desktop.
Javascript Exam

Вопросы

Общие вопросы JS

Вопрос 1

Массивы в JS. Основные методы работы с массивами, способы создания массивов, тонкости работы некоторых методов таких как Push, Pop итд

Вопрос 2

Что такое замыкания в JS. Как работают области видимости. Как работает ключевое слово This

Вопрос 3

Способы объявления функций, вызова функций, модификации функций (call apply bind)

Вопрос 4

Что такое ООП и как с ним работать в JS

Вопросы React

Вопрос 1

Жизненный цикл компонента

Вопрос 2

Как проходит обновление компонента

Вопрос 3

Что такое JSX и как можно было бы работать без него

Вопрос 4

Что такое Ref и в каких случаях он применим

Вопрос 5

Что такое Higher Order Component и где он применим

Вопрос 6

Как используется this.props.children и каким типом он может быть

JS API (Браузер)

Вопрос 1

Что такое промисы, где применимы

Вопрос 2

Зачем нужны объекты Map, Set, WeakMap, WeakSet и где их применять

Вопрос 3

Какие глобальные объекты существуют в браузере и какими свойствами они обладают (не менее 3 эвентов, 3 переменных)

Задачи JS

Задача 1

Что будет выведено в консоли
console.log(null || "" || 2 && 3 || 4 && true);

Задача 2

Реализовать функцию-конструктор (или класс), которая будет представлять собой замену нативному объекту String с методами 
- toArray
- isEmpty
- set
- get
- split

Задача 3

Создать объект-observable, который будет вызываться при помощи chain.
Пример использования:

const value = new Observable(10);
const calculatedValue = value.plus(5).minus(2).divide(3).concat("руб.").custom(value => {
  return value.replace("руб.", "$");
})
console.log(calculatedValue);

Задачи по React

Задача 1

Создать компонент Counter, который будет считать количество нажатий на кнопку

Задача 2

Создать компонент, который будет получать данные по адресу https://jsonplaceholder.typicode.com/posts + создать компонент, который будет отображать посты
Использовать можно любой fetcher

Задача 3

Создать компонент Delay, который будет создавать задержку перед отрисовкой для дочерних элементов

Задача 4

Создать компонент Input, который будет работать с функцией Debounce (на выход из компонента данные будут приходить с задержкой в 300мс)

Задача 5

Создать компонент, который будет брать погодные данные (из публичных API) за последний год и строить график
Можно использовать компонент для отрисовки графиков
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment