Poiché JavaScript è un linguaggio così piccolo, ma con un'incredibile complessità, dovresti essere in grado di porre domande relativamente semplici e scoprire se sono davvero così buone in base alle loro risposte. Ad esempio, la mia prima domanda standard per valutare il resto dell'intervista è:
In JavaScript, qual è la differenza tra var x = 1e x = 1? Rispondi con la stessa quantità di dettagli che ritieni più a tuo agio.
I programmatori inesperti JS potrebbero avere una risposta di base sui locali rispetto ai globali. I ragazzi di JS intermedi dovrebbero sicuramente avere quella risposta e probabilmente dovrebbero menzionare l'ambito a livello di funzione. Chiunque si definisca un programmatore JS "avanzato" dovrebbe essere pronto a parlare dei locali, dei globi impliciti, windowdell'oggetto, dell'ambito delle funzioni, del sollevamento delle dichiarazioni e delle catene dell'ambito. Inoltre, mi piacerebbe sentirne parlare [[DontDelete]], sollevando la precedenza (parametri vs varvs function) e undefined.
Un'altra buona domanda è di chiedere loro di scrivere una sum()funzione che accetta un numero qualsiasi di argomenti e restituisce la loro somma. Quindi, chiedi loro di usare quella funzione (senza modifiche) per sommare tutti i valori in un array. Dovrebbero scrivere una funzione simile a questa:
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
E dovrebbero invocarlo sul tuo array in questo modo (il contesto per applypuò essere qualunque, di solito lo uso nullin quel caso):
var data = [1,2,3];
sum.apply(null, data); // 6
Se hanno queste risposte, probabilmente conoscono il loro JavaScript. Dovresti quindi procedere a chiedere loro cose non specifiche su JS come test, flussi di lavoro, controllo della versione, ecc. Per scoprire se sono un buon programmatore .