Preguntas estúpidas de la entrevista de Javascript
No estoy en contra de las cuestiones técnicas directamente. Creo que es una de las formas de hacerse una idea de las habilidades tecnológicas del candidato. Prefiero una discusión técnica a una entrevista técnica estricta. Pero déjame explicarte una de las peores preguntas de Javascript hoy y por qué.
Antes de comenzar a describir mi punto, profundicemos un poco en la historia de Javascript
Corría el año 1995 , desarrollado por Netscape (Brendan Eich), posteriormente Mozilla continuaba con la mejora y desarrollo de javascript. La idea detrás de javascript era crear algún tipo de dinámica al navegar por el mundo en línea. Se usaba para algunas alertas o animaciones muy básicas. Javascript fue diseñado para tener la apariencia de Java, pero para que sea más fácil trabajar con él para quienes no son programadores. En ese momento ni siquiera había AJAX -> Javascript no se usaba para solicitudes y demás.
Alrededor de 1997, Javascript se convirtió en parte de los estándares ECMA.
En 2005 tuvimos el primer lanzamiento oficial de AJAX -> este es el punto donde comenzó el desarrollo web actual. Ya no era necesario refrescar la página para poder recargar los datos. Imagina que de repente pudieras crear algún tipo de aplicación web. Pero la pregunta es: ¿Javascript estaba listo para eso? Bueno en realidad no. Los desarrolladores se acostumbraron rápidamente a usar cosas como IIFEE :
(function() {
// Code that runs in your function
var name = 'John Doe'
}
)()
console.log(name) // error as the name is not defined in this scope
IIFEE era básicamente, desde el punto de vista actual, una solución pirateada para poder crear una aplicación compleja con más archivos .js . Necesitábamos este tipo de solución porque de lo contrario tendríamos un conflicto en la denominación de variables , funciones , etc., ya que Javascript era un lenguaje estrictamente funcional sin clases.
VAR y el Hoisting -> Hoisting es un comportamiento de mover declaraciones a la parte superior. Y en javascript, la variable se puede usar antes de declararla. Este es un escenario válido:
myVariable = ‘is this shit possible?’
var myVariable;
console.log(myVariable); // is this shit possible?
En este ejemplo, la variable myVariable se movió hacia arriba y se inicializó al mismo tiempo, esta es la razón por la cual en la línea 3, la variable ya almacena la cadena.
Y había muchas más cosas y problemas como ese. Sin olvidar las partes raras de javascript, que puedes encontrar aquí:https://hackernoon.com/the-weird-parts-of-javascript-zxo34i8
Pero algo ha cambiado con Javascript desde la versión es6
Si volvemos a nuestro ejemplo de elevación con el nuevo enfoque:
myVariable = ‘is this shit possible?’
let myVariable;
console.log(myVariable); // undefined
Javascript sigue colocando la declaración de la variable en la parte superior, pero no la inicialización. Entonces nuestra consola escribirá una variable indefinida en lugar de la cadena.
Además con la versión es6 tenemos:
- Funciones de flecha
- Clases
- Módulos
- promesas
- Generadores
- declaraciones let y const para variables
- Operadores Spread y Rest
- Literales de plantilla
- desestructuración
- Y mucho más
¿Cuáles son entonces las preguntas incorrectas de la entrevista?
Era necesario mostrar al menos algunos de esos ejemplos antes de que pudiera empezar a dibujar mi punto.
Imagina que eres un nuevo desarrollador y estás comenzando a aprender Javascript. Realmente no es necesario que entiendas:
- Var
- IIFEE
- Cierres
- Promesas y su uso (pero es bueno saberlo)
Pero no es absolutamente necesario verificar el conocimiento de la versión anterior de Javascript. El antiguo Javascript se creó con un propósito diferente al que se usa hoy.

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































