¿Qué es el alcance en JavaScript?
En JavaScript, el alcance se define mediante corchetes. Define un bloque de código que debe ejecutarse juntos. JavaScript tiene dos tipos de ámbitos:
Function-Scope: Cualquier variable en JavaScript creada dentro de una función utilizando varilla está en la función. Su visibilidad está restringida a la definición de la función y no se puede acceder desde cualquier lugar fuera de la función:
función showMessage ()Bloqueo: Un bloque de código en JavaScript se define por los aparatos ortopédicos rizados. Este tipo de alcance nos ayudará a diferenciar de manera prominente entre los tres métodos para declarar variables:
El siguiente es un ejemplo en el que hemos declarado variables con var, let y const en un bloque if y luego las registraron en la consola:
si es verdad)Todas las variables se han registrado a la consola sin ningún error, ya que se registraron desde el mismo bloque.
Sin embargo, si intentamos registrarlos desde fuera del bloque IF, aparecerá el error mencionado a continuación:
si es verdad)Cómo usar VAR para declarar una variable en JavaScript
Antes de ECMAScript 2016 varilla fue el único método para declarar una variable en JavaScript, pero tenía varios problemas asociados, por lo que se introdujeron nuevos métodos que podrían usarse para declarar variables. Primero entenderemos varilla Y luego hablaremos sobre estos temas:
Alcance de VAR: El alcance variable básicamente significa dónde estará disponible la variable para usar. Variables que se declaran con el varilla La palabra clave tiene alcance global o local.
Variables que se declaran bloque de funciones externas utilizando varilla tener alcance global. El alcance global significa que hay una variable disponible para usar en cualquier lugar de la ventana.
Cuando la variable se declara dentro de una función, se está escolta de la función, lo que significa que solo se puede usar dentro de la función:
Para comprender más a fondo, mire el siguiente ejemplo:
función showMessage ()Aquí el mensaje es la función alcanzada para que no se pueda acceder fuera de la función. Entonces, si hacemos esto:
función showMessage ()Esto nos dará un error que se debe a que el mensaje no está disponible fuera de la función.
var fuera de un bucle for-bucle: La variable "i" se puede acceder desde el exterior del bucle.
para (var i = 0; i < 5; i++)Las variables VAR se pueden volver a decidir y actualizarse: En las variables de JavaScript declaradas con varilla La palabra clave se puede redeclarar y actualizar en el mismo alcance:
función showMessage ()Cómo usar Lettar para declarar una variable en JavaScript: El dejar ahora se prefiere la palabra clave varilla para declaraciones variables; Viene con algunas mejoras sobre varilla.
Let Is Block Scoped: En JavaScript, un bloque de código es la recopilación de declaraciones que están limitadas por un par de soportes rizados . Una variable declarada usando el dejar La palabra clave solo está disponible para usar dentro de ese bloque y no se puede acceder desde el exterior:
si es verdad)Si usamos el mensaje Fuera del bloque donde se definió, devolverá un error. Esto se debe a que las variables de Let están escoltas.
Deje que fuera de un for-bucle: El siguiente ejemplo que demuestra el dejar Salida variable usando para bucle:
para (deja i = 0; yo < 5; i++)Deje que se pueda actualizar pero no vuelva a declarar: Una variable declarada con dejar se puede actualizar dentro de su alcance como varilla, pero a diferencia varilla, No se puede redeclarar:
Let Message = 'HI de LinuxHint';La consola está completamente vacía y no devuelve ningún error. Estas declaraciones devolverán un error:
Let Message = 'HI de LinuxHint';Sin embargo, redefinir la misma variable en un alcance diferente usando dejar no devuelve ningún error:
Let Message = 'HI de LinuxHint';El dejar La palabra clave trata estas dos variables como diferentes si están en diferentes ámbitos, por lo que no devuelve ningún error; esta característica del dejar La palabra clave lo convierte en una mejor opción que varilla. Cuando usas dejar, Puede reutilizar los nombres de variables en diferentes ámbitos sin preocuparse por si ha usado ese nombre de variable antes.
Cómo usar const para declarar la variable en JavaScript
Las variables declaradas usando el estúpido La palabra clave tiene valores constantes. Esto significa que sus valores no se pueden cambiar/reasignarse. Similar a las variables declaradas con el dejar palabra clave, las variables declaradas con el varilla La palabra clave también está en bloque de bloques.
const no se puede volver a decidir o reasignar: Las variables declaradas con la palabra clave estúpido no se puede redeclarar ni reasignarse dentro del mismo alcance. Entonces, si hemos declarado una variable con la palabra clave const, no podemos hacer esto:
const mensaje = 'Hi de LinuxHint';Tampoco podremos hacer esto:
const mensaje = 'Hi de LinuxHint';Cada variable que se declara utilizando el estúpido La palabra clave debe inicializarse en el momento de su declaración.
Este comportamiento de la estúpido La palabra clave de alguna manera cambia cuando se trata de objetos. Si bien el objeto declarado no se puede actualizar, sus propiedades se pueden cambiar
Entonces, si declaramos un objeto con estúpido:
Const user =Si bien esto no se puede hacer:
usuario =Esto puede hacerse:
usuario.nombre = "Harry";Esto cambiará el valor del usuario.nombre sin devolver ningún error.
Revisión final
Declaración variable | Choque de funciones | Choque de bloques | Redefinible |
---|---|---|---|
varilla | ✅ | ❌ | ✅ |
dejar | ❌ | ✅ | ✅ |
estúpido | ❌ | ✅ | ❌ |
Conclusión
Generalmente es una buena práctica evitar usar varilla declarar variables en JavaScript porque el alcance de la función es confuso y no es tan obvio como el alcance del bloque. El dejar y estúpido Las palabras clave alientan a los desarrolladores a usar mejores prácticas de codificación. Generalmente deberías usar dejar Para las variables que necesitará para reasignar y usar el estúpido Palabra clave para todas las demás variables. Este artículo explica a fondo los tres tipos de variables con ejemplos.