Una de las palabras de moda más importantes en el lenguaje JavaScript es cierre. Es el tema de muchas preguntas de entrevistas de trabajo en las empresas FAANG. En este artìculo, hablaremos sobre el cierre y el alcance, ilustraremos sus conceptos con ejemplos simples y luego terminaremos con una pregunta de muestra de una entrevista con uno de los gigantes tecnològicos más grandes.
Cuando alguien te dice que algo está o no dentro del alcance de un proyecto, ¿qué significa eso? & nbsp;
Me gustarìa pensar en un periscopio o un telescopio cuando pienso en la respuesta a esto. Estos instrumentos nos muestran todo tipo de cosas dentro de los lìmites de la lente que tiene: & nbsp; está en alcance. Si está fuera del alcance, no podrá ver más allá del diámetro de la lente. Y no es posible iluminar algo fuera del diámetro. Deberìa pensar en esto ya que hablamos de tres tipos de alcance muy importantes y distintos en JavaScript: local, global y léxico. & Nbsp;
Alcance local
Alcance local es el más peque√±o de los tres ámbitos de los que hablaremos hoy. Cuando declaramos una funciòn, cualquier cosa dentro de los corchetes ({}) se considera local a la funciòn. Cuando el motor de JavaScript lee la funciòn, declarará las variables; cuando termine, destruirá las variables. & nbsp;
Como puede ver, cuando " console.log () " el resultado de la funciòn de saludo invocada, podemos acceder al nombre del sitio web después de que se ejecutò la funciòn. Esto nos da el " Hello Python.Engineering " cadena que estábamos buscando. El console.log ()
de la variable que se declarò dentro de la funciòn arroja un error porque no está definida.
Como ya se mencionò, la razòn por la que websiteName no está definido se debe a que las variables se crean dentro de las funciones cuando se invocan y luego se destruyen cuando se ejecuta la sentencia de terminal. Cualquier cosa fuera de la funciòn no tiene acceso a cosas dentro de la funciòn a menos que tenga una configuraciòn especial.
Alcance global
El siguiente alcance es prácticamente una traducciòn literal de la frase. Un alcance global toma los elementos declarados fuera de una funciòn y los reserva en un espacio donde todos los scripts y métodos y funciones pueden acceder y usarlos para su lògica. & Nbsp;
¿Qué hace el còdigo anterior si console.log ()
el contador al final del còdigo? ¿Qué espera que suceda? & Nbsp;