- Объясните делегирование событий.
- Объясните, как this работает в JavaScript.
- Расскажите, как работает прототипное наследование.
- Что вы думаете о AMD против CommonJS?
- Объясните, почему это не является IIFE: function foo(){ }();. Что необходимо изменить, чтобы это стало IIFE?
- В чём различие между переменными, значение которых: null, undefined и не объявлено? Как бы вы проверили их на каждое из этих значений?
- Что такое замыкание и как/для чего его используют?
- Можете ли вы описать основное различие между циклом forEach и циклом .map()? И в каких случаях каждый из них используется?
- В каких случаях обычно используются анонимные функции?
- В чем разница между host-объектами и нативными объектами?
- В чем разница между: function Person(){}, var person = Person(), и var person = new Person()?
- В чем разница между .call и .apply?
- Что делает и для чего нужна функция Function.prototype.bind?
- В чем разница между feature detection (определение возможностей браузера), feature inference (предположение возможностей) и анализом строки user-agent?
- Расскажите об Ajax как можно более подробно.
- Какие преимущества и недостатки в использовании Ajax?
- Объясните, как работает JSONP (и почему это не совсем AJAX).
- Вы когда-нибудь использовали шаблонизацию на JavaScript? Если да, то какие библиотеки вы использовали?
- Расскажите, что такое поднятие (hoisting).
- Объясните, что такое всплытие событий (event bubbling).
- В чём разница между «атрибутом» (attribute) и «свойством« (property)?
- Почему не следует расширять нативные JavaScript-объекты?
- В чём разница между событием document load и событием document DOMContentLoaded?
- В чём разница между == и ===?
- Объясните same-origin policy в контексте JavaScript.
- Сделайте так, чтобы этот код работал: duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
- Почему тернарный оператор так называется?
- Что делает строчка "use strict";? Какие достоинства и недостатки от ее использования?
- Напишите цикл, который перебирает числа до 100, возвращая “fizz” на числа кратные 3, “buzz” на числа кратные 5 и “fizzbuzz” на числа кратные 3 и 5
- Почему считается хорошим тоном оставить глобальную область видимости (global scope) в нетронутом состоянии?
- Для чего используют событие load? Есть ли у этого события недостатки? Знаете ли вы какие-либо альтернативы, и в каких случаях бы стали их использовать?
- Расскажите, что такое одностраничное приложение, и как сделать его SEO-оптимизированным.
- Насколько вы опытны в работе с промисами (promises) и/или их полифилами?
- Какие преимущества и недостатки при использовании промисов вместо колбэков (callbacks)?
- Каковы преимущества и недостатки написания JavaScript-кода на языке, который компилируется в JavaScript?
- Какие инструменты и методы вы используете при отладке кода?
- Какие языковые конструкции вы используете для итерации по свойствам объекта и элементам массива?
- Объясните разницу между синхронными и асинхронными функциями.
- Что такое цикл событий (event loop)? В чём разница между стеком вызовов (call stack) и очередью событий (task queue)?
- Объясните разницу при использовании foo в function foo() {} и var foo = function() {}
- В чём различие между переменными, созданными при помощи let, var и const?
- В чём разница между классом в ES6 и функцией-конструктором в ES5?
- Можете ли вы привести пример использования стрелочных функции =>? Чем они отличаются от других функций?
- Дайте определение функции высшего порядка.
- Можете ли вы привести пример деструктуризации объекта или массива?
- Шаблонные строки в ES6 намного упрощают создание строк, можете ли вы привести пример их использования?
- Можете ли вы привести пример каррированной функции (curry function) и в чём их преимущество?
- В чём преимущества использования spread оператора и чем он отличается от rest оператора?
- Каким образом можно обмениваться кодом между файлами?
- Для чего используются статические члены класса?
- В чем разница между async и defer?