Ponieważ JavaScript jest tak małym językiem, ale ma niesamowitą złożoność, powinieneś być w stanie zadać stosunkowo podstawowe pytania i dowiedzieć się, czy są one naprawdę dobre, na podstawie ich odpowiedzi. Na przykład moje standardowe pierwsze pytanie do oceny reszty wywiadu brzmi:
W JavaScript, jaka jest różnica między var x = 1i x = 1? Odpowiadaj tak dużo lub tak mało szczegółów, jak chcesz.
Początkujący programiści JS mogą mieć podstawową odpowiedź na temat lokalnych i globalnych. Faceci od średniozaawansowanych JS zdecydowanie powinni mieć tę odpowiedź i prawdopodobnie powinni wspomnieć o zakresie na poziomie funkcji. Każdy, kto nazywa siebie „zaawansowanym” programistą JS, powinien być przygotowany na rozmowę o lokalizacjach, domniemanych globalnych, windowobiekcie, zakresie funkcji, podnoszeniu deklaracji i łańcuchach zasięgu. Ponadto chciałbym usłyszeć o [[DontDelete]]pierwszeństwie podnoszenia (parametry vs varvs function) i undefined.
Innym dobrym pytaniem jest poproszenie ich o napisanie sum()funkcji, która przyjmuje dowolną liczbę argumentów i zwraca ich sumę. Następnie poproś, aby użyli tej funkcji (bez modyfikacji) do zsumowania wszystkich wartości w tablicy. Powinni napisać funkcję, która wygląda następująco:
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);
I powinni wywołać to na twojej tablicy w ten sposób (kontekst applymoże być dowolny, zwykle używam nullw tym przypadku):
var data = [1,2,3];
sum.apply(null, data);
Jeśli mają te odpowiedzi, prawdopodobnie znają swój JavaScript. Następnie powinieneś zapytać ich o rzeczy niezwiązane z JS, takie jak testowanie, przepływy pracy, kontrola wersji itp., Aby dowiedzieć się, czy są dobrym programistą .