JavaScript

Вопросы на собеседование

  1. Типы данных
    number
    string
    boolean
    null
    undefined
    object
  2. Как переадресовать страницу в JS?
    window.location.href = "i.ua"
  3. Сколько параметров можно передать функции?
    Сколько угодно.
  4. Нужно алертом вывести какое-то сообщение, спустя 3 секунды после запуска скрипта. Как это сделать?
    setTimeout(alert("Hello", 3000));
  5. Наследование в JS
    В JavaScript каждый объект может иметь ассоциацию с другим объектом - так называемый "прототип" (prototype). В случае, если поиск некоторого свойства (или метода) в исходном объекте заканчивается неудачно, интерпретатор пытается найти одноименное свойство (метод) в его прототипе, затем - в прототипе прототипа и т. д. К примеру, если мы затребовали обращение к obj.prop (или, что абсолютно то же самое, obj['prop']), JavaScript начнет искать свойство prop в самом объекте obj, затем – в прототипе obj, прототипе прототипа obj, и так до конца.
  6. Пример наследования
    cat.prototype = animal;
  7. Object
    Object (они же - ассоциативные массивы, хэши). Представляет собой обычный ассоциативный массив или, иначе говоря, "хэш". Он хранит любые соответствия "ключ => значение" и имеет несколько стандартных методов, которые являются просто функциями.
  8. Ключевое слова VAR
    Если создавать переменную через обычное присваивание - будет создана "глобальная переменная". Если создавать переменную с использованием слова var, тогда будет создана "локальная переменная", которая перестаёт существовать после завершения работы функции.
  9. Как создать массив?
    var array = [1,2,3];
  10. Какие есть циклы?
    For, while, do while.
  11. Что cделает код: break mark; ?
    Выйдет из текущего блока цикла или switch на метку "
  12. Какая разница между операторами == и ===?
    Оператор == сравнивает на равенство, а вот === сравнивает на идентичность. Плюс оператора === состоит в том, что он не приводит два значения к одному типу. Именно из-за этого он обычно и используется.
  13. Что такое prototype?
    В общих чертах prototype - это свойство позволяющее добавлять уже существующим объектам свойства, также используется для эмуляции наследования классов.
  14. Eсть ли разница между window и document?
    Да. У JavaScript есть глобальный объект и всё происходит через него. window - тот самый объект, который хранит глобальные переменные, функции, местоположение, историю. Всё находится внутри него, setTimeout, XMLHttpRequest, console и localStorage также являются частью window. Аналогично дело обстоит и с document, который является свойством объекта window и представляет DOM. Все ноды - это часть document, следовательно, вы можете использовать getElementById или addEventListener для document. Но обратите внимание, что этих методов нет в объекте window.
  15. CSS Приоритеты (Specificity):
    !important
    Инлайновые стили - прописаные в атрибуте html ("div style="color:"")
    IDs
    Classes, attributes and pseudo-classes.
    Tags