Sombreado de variables en JavaScript

Alcance de bloque: para comprender el sombreado en JavaScript, primero debemos ser claros con el alcance. En los lenguajes de programación de computadoras, Scope es una cierta sección/región del programa donde una variable definida puede tener su existencia y puede ser reconocida, más allá de que no se puede acceder a ella. En JavaScript, un bloque es una declaración compuesta que se define mediante llaves {} y se usa para combinar varias declaraciones en una declaración donde JavaScript espera solo una declaración. Y se dice que todas las variables y funciones a las que se puede acceder dentro de un bloque están dentro del alcance de ese bloque, por lo que se denominan alcance de bloque.

Por ejemplo, las variables let y const se almacenan en un espacio de memoria separado, por lo que se denomina ámbito de bloque, pero se puede acceder a las variables var fuera del bloque, ya que se almacenan en el espacio de memoria del objeto global, por lo que se denomina ámbito global.

Sombreado: ahora, cuando se declara una variable en un determinado ámbito que tiene el mismo nombre definido en su ámbito externo y cuando llamamos a la variable desde el ámbito interno, el valor asignado a la variable en el ámbito interno es el valor que se almacenará en la variable en el espacio de memoria. Esto se conoce como sombreado o sombreado variable . En JavaScript, la introducción de let y const en ECMAScript 6 junto con el alcance de bloque permite el sombreado variable.

Ejemplo:

Javascript

function func() {
    let a = 'Geeks';
      
    if (true) {
        let a = 'GeeksforGeeks';  // New value assigned
        console.log(a); 
    }
      
    console.log(a); 
func();

Producción:

GeeksforGeeks
Geeks

Sombreado ilegal: ahora, mientras se sombrea una variable, no debe cruzar el límite del alcance, es decir, podemos sombrear la variable var por la variable let pero no podemos hacer lo contrario. Entonces, si intentamos sombrear la variable let por la variable var , se conoce como sombreado ilegal y dará el error como «la variable ya está definida». 

Ejemplo:

Javascript

function func() {
    var a = 'Geeks';
    let b = 'Geeks;
      
    if (true) {
        let a = 'GeeksforGeeks'; // Legal Shadowing
        var b = 'Geeks'; // Illegal Shadowing
        console.log(a); // It will print 'GeeksforGeeks'
        console.log(b); // It will print error
    }
}
func();

Producción:

Identifier 'b' has already been declared

Nota: Las funciones de flecha también siguen el mismo alcance y la misma regla de sombreado de variables.

Publicación traducida automáticamente

Artículo escrito por argha_c14 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *