Como o JavaScript é uma linguagem tão pequena, mas com uma complexidade incrível, você deve poder fazer perguntas relativamente básicas e descobrir se elas são realmente boas com base em suas respostas. Por exemplo, minha primeira pergunta padrão para avaliar o restante da entrevista é:
Em JavaScript, qual é a diferença entre var x = 1
e x = 1
? Responda com os detalhes que você se sentir confortável.
Programadores iniciantes em JS podem ter uma resposta básica sobre habitantes locais e globais. Os caras intermediários da JS definitivamente devem ter essa resposta e provavelmente devem mencionar o escopo no nível da função. Qualquer pessoa que se autodenomine um programador JS "avançado" deve estar preparado para falar sobre locais, globais implícitos, window
objeto, escopo de função, levantamento de declaração e cadeias de escopo. Além disso, eu adoraria ouvir sobre [[DontDelete]]
, içar precedência (parâmetros vs var
vs function
) e undefined
.
Outra boa pergunta é pedir que eles escrevam uma sum()
função que aceite qualquer número de argumentos e retorne sua soma. Em seguida, peça que eles usem essa função (sem modificação) para somar todos os valores em uma matriz. Eles devem escrever uma função que se parece com isso:
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 eles devem invocá-lo em sua matriz como este (o contexto apply
pode ser o que for, eu costumo usar null
nesse caso):
var data = [1,2,3];
sum.apply(null, data); // 6
Se eles têm essas respostas, provavelmente sabem o JavaScript. Você deve então perguntar a eles sobre coisas não específicas de JS, como testes, fluxos de trabalho, controle de versão etc. para descobrir se eles são um bom programador .