Собеседование JS - notforpress/notes GitHub Wiki

Язык JavaScript

Что такое слабая типизация

Встроенные типы

Про Number, String, Object, Function, Array, Date.

Отличие === от ==

Про строгое и нестрогое сравнение.

Примеры:

  • 2 == '2'
  • 2 === '2'

Отличие null от undefined

Примеры:

  • null == undefined
  • null === undefined

typeof и instanceof

Что это такое, зачем используется? Привести примеры. Чему равно typeof null?

Контекст

Что такое this, в каких случаях и чему оно будет равно при вызове функции?

Например:

function foo() {
    console.log(this);
}
foo();
foo.call({hello:'world'});
var obj = {hello:'world'};
obj.foo = foo;
obj.foo();

и так далее...

apply, call и bind

Рассказать, что это за методы и зачем они применяются.

Объявление функции через var и не через var

В чем отличие следующего кода:

function foo () {
}

и

var foo = function () {
}

"Классы"

Есть ли в JS классы?

Как в JS создать нечто подобное классу?

Как можно объявить методы?

Прототипы

Что такое прототипы, как работают? Привести примеры.

"Приватные" переменные

Как создать в классе приватную переменную?

Замыкания

Что такое замыкания?

Рассказать об областях видимости переменных.

Паттерн module

Привести пример кода.

Чем отличается от класса?

Как работает RequireJS

Как RequireJS грузит модули?

Как объявляется AMD-модуль?

Как работает оптимизатор r.js?

Что такое Grunt и для чего он нужен

Рассказать об опыте использования Grunt.

Какие есть распространённые таски?

Node.js

Для чего нужен?

Node - потоковый или событийный сервер?

В чем преимущество того, что он событийный?

Как работает ввод-вывод?

Как можно кривым кодом подвесить весь поток?

Фреймворки

Knockout

Принцип действия. Как работают ko.observable?

Как объявить биндинг?

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

Backbone

Общая характеристика. Преимущества, недостатки. Как работает View и в чем его концептуальный недостаток?

Angular

N/A

Программирование

Коллекции

Слабые и сильные стороны массива и связанного списка.

Для чего используются?

Что такое hash?

Бинарный поиск

Привести пример.

Какие бывают деревья?