Debido a que JavaScript es un lenguaje tan pequeño, pero con una complejidad increíble, debería poder hacer preguntas relativamente básicas y descubrir si realmente son tan buenas en función de sus respuestas. Por ejemplo, mi primera pregunta estándar para evaluar el resto de la entrevista es:
En JavaScript, ¿cuál es la diferencia entre var x = 1y x = 1? Responda con tanto o tan poco detalle como se sienta cómodo.
Los programadores novatos de JS pueden tener una respuesta básica sobre locales vs globales. Los chicos de JS intermedios definitivamente deberían tener esa respuesta, y probablemente deberían mencionar el alcance del nivel de función. Cualquiera que se llame a sí mismo un programador JS "avanzado" debe estar preparado para hablar sobre locales, globales implícitos, el windowobjeto, el alcance de la función, el levantamiento de declaraciones y las cadenas de alcance. Además, me encantaría saber sobre la [[DontDelete]]elevación de la precedencia (parámetros vs varvs function) y undefined.
Otra buena pregunta es pedirles que escriban una sum()función que acepte cualquier número de argumentos y devuelva su suma. Luego, pídales que usen esa función (sin modificación) para sumar todos los valores en una matriz. Deberían escribir una función que se vea así:
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
Y deberían invocarlo en su matriz de esta manera (el contexto applypuede ser lo que sea, generalmente uso nullen ese caso):
var data = [1,2,3];
sum.apply(null, data); // 6
Si tienen esas respuestas, probablemente conozcan su JavaScript. Luego, debe preguntarles acerca de cosas no específicas de JS, como pruebas, flujos de trabajo, control de versiones, etc., para averiguar si son un buen programador .