Оскільки JavaScript - це така невелика мова, але з неймовірною складністю, ви повинні мати можливість задати відносно основні питання та дізнатися, чи справді вони такі хороші, виходячи з їхніх відповідей. Наприклад, моє стандартне перше питання щодо оцінки решти інтерв'ю:
У JavaScript в чому різниця між var x = 1і x = 1? Відповідайте стільки ж, скільки деталей, як вам комфортно.
Новачки-програмісти JS можуть мати основну відповідь про місцевих жителів проти глобальних. Хлопці з проміжних JS обов'язково повинні відповісти на це питання, і, мабуть, повинні згадати область функціонального рівня. Кожен, хто називає себе «просунутим» програмістом JS, повинен бути готовим розповідати про місцевих жителів, загальноприйнятих глобальних об єктах, windowоб'єкті, області функцій, підйомі декларацій та ланцюгах областей. Крім того, я хотів би почути про [[DontDelete]], піднімаючи пріоритет (параметри varпроти function) та undefined.
Ще одне добре запитання - попросити їх написати sum()функцію, яка приймає будь-яку кількість аргументів, і повертає їх суму. Потім попросіть їх використовувати цю функцію (без змін) для підсумовування всіх значень у масиві. Вони повинні записати функцію, яка виглядає приблизно так:
function sum() {
var i, l, result = 0;
for (i = 0, l = arguments.length; i < l; i++) {
result += arguments[i];
}
return result;
}
sum(1,2,3); // 6
І вони повинні викликати його у своєму масиві так (контекст для цього applyможе бути будь-яким, я зазвичай використовую nullв такому випадку):
var data = [1,2,3];
sum.apply(null, data); // 6
Якщо вони отримали ці відповіді, вони, напевно, знають свій JavaScript. Тоді слід перейти до розпитування про речі, що не стосуються JS, як-от тестування, робочі процеси, контроль версій тощо, щоб з’ясувати, чи добре вони програміст .