test - Preguntas de la entrevista del programador Pro JavaScript(con respuestas)
test javascript online (8)
¿Cuáles son las buenas preguntas para determinar si el solicitante es realmente un desarrollador de JavaScript profesional (del lado del navegador)?
Preguntas que pueden distinguir si alguien no es un programador de JavaScript ad hoc, pero realmente está haciendo un desarrollo de JavaScript profesional, orientado a objetos, reutilizable y mantenible.
Proporcione las respuestas , para que los programadores de JavaScript intermedios y ad-hoc puedan entrevistar a alguien con más experiencia, encontrando respuestas a bastantes de esas preguntas avanzadas me escapará. Por favor, evita preguntas abiertas .
Mantenga una pregunta / respuesta de la entrevista según la respuesta SO para una mejor experiencia de lectura y una preparación más fácil de la entrevista.
(Supongo que te refieres al JavaScript del lado del navegador)
Pregúntale por qué, a pesar de su conocimiento infinito de JavaScript, sigue siendo una buena idea usar marcos existentes como jQuery, Mootools, Prototype, etc.
Respuesta: código de buenos codificadores, reutilización de codificadores geniales. Se han vertido miles de horas-hombre en estas bibliotecas para abstraer las capacidades de DOM de las implementaciones específicas del navegador. No hay motivo para pasar por todos los diferentes dolores de cabeza de DOM del navegador para reinventar las soluciones.
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 medir el resto de la entrevista es:
En JavaScript, ¿cuál es la diferencia entre
var x = 1
yx = 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 los locales frente a los globales. Los chicos JS intermedios definitivamente deberían tener esa respuesta, y probablemente deberían mencionar el alcance del nivel de función. Cualquier persona que se llame a sí misma como un programador JS "avanzado" debe estar preparado para hablar sobre locales, variables globales implícitas, el objeto window
, el alcance de la función, el levantamiento de declaraciones y las cadenas de alcance. Además, me encantaría escuchar acerca de [[DontDelete]]
, elevación de precedencia (parámetros vs var
vs function
), y undefined
.
Otra buena pregunta es pedirles que escriban una función sum()
que acepte cualquier cantidad 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. Deben escribir una función que se ve 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 para apply
puede ser el que sea, normalmente utilizo null
en 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 buenos programadores .
Pregúnteles cómo se aseguran de que sus páginas sigan siendo utilizables cuando el usuario tiene JavaScript desactivado o JavaScript no está disponible.
No hay una sola respuesta verdadera, pero estás buscando una respuesta para hablar sobre algunas estrategias para la mejora progresiva .
La mejora progresiva consiste en los siguientes principios básicos:
- el contenido básico debe ser accesible para todos los navegadores
- la funcionalidad básica debe ser accesible para todos los navegadores
- escaso, marcado semántico contiene todo el contenido
- el diseño mejorado es proporcionado por CSS externamente vinculado
- el comportamiento mejorado es proporcionado por [[Unobtrusive JavaScript | discreto]], JavaScript externo vinculado
- se respetan las preferencias del navegador del usuario final
Pregunte "¿Qué marco de prueba de unidad usa y por qué?"
Puede decidir si realmente usar un marco de prueba es realmente necesario, pero la conversación puede decirle mucho sobre lo experta que es la persona.
Pregunte cómo los cierres accidentales pueden causar pérdidas de memoria en IE.
Pregunte sobre "esto". Esta es una buena pregunta que puede ser una verdadera prueba del desarrollador de JavaScript.
los programadores intermedios deben tener el dominio técnico de sus herramientas.
si ha superado las preguntas técnicas de la pantalla del teléfono técnico que aparecen arriba, hágale bosquejar algo estúpido en el lugar, como un shortner url ajax. luego asórtelo en su cartera. ninguna cartera increíble = desarrollador intermedio en este dominio y no el tipo que desea a cargo de su nuevo proyecto brillante.
Programación básica de JS
-
Scope of variable
- ¿Qué es la
Associative Array
? ¿Cómo lo usamos?
OOPS JS
-
Difference between Classic Inheritance and Prototypical Inheritance
- ¿Cuál es la
difference between private variable, public variable and static variable
? ¿Cómo logramos esto en JS? - ¿Cómo
add/remove properties to object
en tiempo de ejecución? - ¿Cómo lograr la
inheritance
? - ¿Cómo
extend built-in objects
? - ¿Por qué
extending array is bad idea
?
DOM y JS
-
Difference between browser detection and feature detection
-
DOM Event Propagation
-
Event Delegation
-
Event bubbling V/s Event Capturing
Misc
-
Graceful Degradation V/s Progressive Enhancement