¿Qué sucede cuando asignamos directamente la variable sin declararla en JavaScript?

JavaScript tiene dos ámbitos que son el ámbito local y el ámbito global y cuando asignamos directamente una variable sin declarar, se convierte en una propiedad global del objeto de la ventana. La ventana es el objeto del navegador. No es el objeto de JavaScript. El navegador lo crea automáticamente y se puede acceder a él desde cualquier lugar de la página web.

Asignemos un valor a una variable x sin declararlo y verifiquemos con la ayuda del método hasOwnProperty() , si la variable x pertenece al objeto ventana o no.

Ejemplo 1:

Javascript

// Before x is not assigned
console.log(`1 -> ${window.hasOwnProperty('x')}`);
  
x= 2; // Assigning x without declaring it
  
console.log(`2 -> ${window.hasOwnProperty('x')}`); 
  
// To show both value refers to same object
console.log(` 3 -> ${window.x === x}`);

Producción:

1 -> false
2 -> true
3 ->true

asignar variable sin declararla 

Ejemplo 2: en el siguiente ejemplo, a la variable x se le asigna un valor sin declararlo, por lo que se convertirá en una propiedad global y se podrá acceder a ella desde cualquier lugar.

Javascript

function check(){
     y = "GeeksForGeeks";
}
check();
console.log(y);

Producción:

GeeksForGeeks

También podemos acceder a este valor como window.x . Entonces, la función check() también se puede escribir de la siguiente manera:

function check(){
    window.x = "GeeksForGeeks";
}

También podemos mostrar que el valor asignado sin declararlo se convirtió en una propiedad del objeto ventana con la ayuda de hasOwnProperty() .

Ejemplo 3:

Javascript

function check(){
    x = "GeeksForGeeks";
}
check();
if(window.hasOwnProperty('x')){
    console.log(`x is a Property of Window Object`);
}

Producción:

x is a Property of Window Object

Podemos usar el modo estricto, que es una característica nueva en ECMAScript 5 que le permite colocar un programa o una función en un contexto operativo «estricto». Tirará Error de referencia: x no está definida, cuando asignamos un valor a una variable sin declararla.

Ejemplo 4:

Javascript

'use strict' // For strict mode
try{
    function check(){
      
        x = "GeeksForGeeks";
    }
    check();
      
} catch(err){
     
    console.log(err);
}

Producción:

ReferenceError: x is not defined
    at check (<anonymous>:5:11)
    at <anonymous>:7:5

asignando variable en modo estricto

Publicación traducida automáticamente

Artículo escrito por AStream26 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 *