Asigne variables, variables globales y ámbitos en JavaScript (let, var, const)

dejarvar,const son todas las declaraciones de JavaScript que asignan un valor a una variable.

Su comportamiento puede diferir dependiendo de cómo y dónde se usan en su código; siga leyendo para conocer los detalles.

Ámbitos en JavaScript

A medida que empiece a crear aplicaciones más complejas, empezará a ver mucho sobre ámbitos . El alcance de una variable define dónde está disponible en su aplicación.

Alcance global (variables globales)

Si una variable está en el global alcance, está disponible en cualquier parte de su aplicación. Se puede llamar desde cualquier función o bloque de código a menos que una variable con el mismo nombre esté disponible en el alcance de dicha función o bloque de código .

Por ejemplo:

var myString = "hi!"; // Declaring a global variable

function sayHi(){
    console.log(myString); // Accessing the global variable myString from within a function
}

sayHi(); // Will output "hi!"

El alcance del módulo

Si usa módulos de JavaScript, las variables globales dentro de los módulos no están disponibles fuera de ellos.

Deben ser exportados desde el módulo y luego importado . ¡Sin embargo, es mejor dejar esto para un artículo sobre módulos!

Alcance de la función

La función alcance significa que una variable está disponible solo dentro de una función dada:

var myString  = "goodbye!"; // Declaring a global variable

function sayHi(){

    var myString = "hi!";// Declaring a function scoped variable for use within this function.

    console.log(myString); // Accessing the function scope variable myString from within a function
}

sayHi(); // Will output "hi!"

Ámbito de bloque

El bloque scope es el más local de los ámbitos. Variables declaradas en un bloque (cualquier código contenido dentro de {} llaves) están disponibles solo para codificar dentro del mismo conjunto de llaves.

var myString  = "goodbye!"; // Declaring a global variable

if(true){
    let myString = "hi!";
    console.log(myString); // Will output "hi!" as it is accessing the myString variable in the current block scope
}

console.log(myString); // Will output "goodbye!" as it is outside of the above block, so it reads the global variable

Declaración de variables con var

Declarar una variable con var es la forma antigua de JavaScript. Se ve así:

var myNumber = 3;

Alcance de var

Usando var fuera de una función la convertirá en una variable global .

Si se usa dentro de una función, la variable estará disponible dentro de esa función: alcance de la función .

Redeclarabilidad/Inmutabilidad de var

Variables declaradas con var se puede volver a declarar y actualizar/cambiar, por lo que se puede usar el siguiente código:

var myNumber = 3;
myNumber = 4;
var myNumber = 5;

Declaración de variables con let

let myNumber = 3;

Alcance de let

El dejar declaración declarará una variable para el ámbito de bloque actual :

Redeclarabilidad/Inmutabilidad de let

Variables declaradas con let se puede actualizar pero no ser re-declarado, así que esto está bien:

let myNumber = 3;
myNumber = 4;

..sin embargo, esto no está bien:

let myNumber = 3;
let myNumber = 4;

Declaración de variables con const

Finalmente, const se puede usar para declarar constantes :

const myNumber = 3;

Alcance de const

Me gusta permitirconst las variables tienen ámbito de bloque .

Redeclarabilidad/Inmutabilidad de const

Variables declaradas con const no puede actualizarse o re-declarado.

Declaración de múltiples variables en una sola línea

Puede declarar múltiples variables utilizando cualquiera de las declaraciones anteriores en una sola línea:

var myNumber = 3, myString = "Hi!", myBool = false;