JavaScript deja Vs var (con ejemplos)

En este tutorial, aprenderá sobre la diferencia entre let y var en JavaScript con la ayuda de ejemplos.

En JavaScript, las palabras clave vary letse utilizan para declarar variables.

La letpalabra clave se introdujo en la versión posterior de JavaScript conocida como ES6 (ES2015) . Y es la forma preferida de declarar variables.

JavaScript deja Vs var

Aquí está la descripción general de las diferencias entre lety var.

dejar var
let tiene ámbito de bloque. var tiene un alcance de función.
let no permite redeclarar variables. var permite redeclarar variables.
El izado no ocurre en let. El izado ocurre en la var.

JavaScript permite Vs var en el ámbito local

var tiene un alcance de función

La variable declarada dentro de una función con varse puede usar en cualquier lugar dentro de una función. Por ejemplo,

 // program to print text // variable a cannot be used here function greet() ( // variable a can be used here var a = 'hello'; console.log(a); ) // variable a cannot be used here greet(); // hello

En el programa anterior, la variable a se declara con var. La variable a se puede usar en cualquier lugar dentro de la función greet.

let tiene alcance de bloque

letSolo se puede acceder a la variable declarada con dentro de un bloque de código. Por ejemplo,

 // program to print the text // variable a cannot be used here function greet() ( let a = 'hello'; // variable b cannot be used here if(a == 'hello')( // variable b can be used here let b = 'world'; console.log(a + ' ' + b); ) // variable b cannot be used here console.log(a + ' ' + b); // error ) // variable a cannot be used here greet();

Salida

 hola mundo Uncaught ReferenceError: b no está definido

En el programa anterior, la variable a se declara dentro de la función y se puede acceder a ella desde cualquier lugar dentro de la función (a se convierte en función del ámbito).

Sin embargo, la variable b se declara dentro de la ifdeclaración del bloque. b tendrá un alcance de bloque y solo se puede acceder dentro del ifbloque.

Por lo tanto, cuando intenta acceder a b fuera del ifbloque, se produce un error (como se muestra arriba en el programa).

Nota : Las variables declaradas dentro de una función tendrán el ámbito de función para ambos vary let.

let no permite redeclarar variables

1. Una variable declarada con se varpuede volver a declarar . Por ejemplo,

 var a = 5; // 5 var a = 3; // 3

Una variable declarada con letno se puede volver a declarar dentro del mismo bloque o del mismo alcance. Por ejemplo,

 let a = 5; let a = 3; // error 

Salida

 Error de sintaxis no detectado: el identificador 'a' ya ha sido declarado

2. Volver a declarar una variable con varun alcance o bloque diferente también cambia el valor de la variable externa. Por ejemplo,

 var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3

La redeclaración de una variable con letun alcance o bloque diferente trata esa variable como una variable diferente. Y el valor de una variable exterior no cambia. Por ejemplo,

 let a = 5; console.log(a); // 5 ( let a = 3; console.log(a); // 3 ) console.log(a); // 5

3. Cuando varse usa una variable declarada con en un ciclo, el valor de esa variable cambia. Por ejemplo,

 var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3

En el programa anterior, el forciclo redeclara la variable a. Por lo tanto, el valor de ase cambia a 3 al final.

Cuando una variable declarada con let se usa en un ciclo, el valor de una variable no cambia. Por ejemplo,

 let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2

En el programa anterior, el forbucle trata la variable a como una variable diferente a la declarada anteriormente. Y el alcance de esa variable está solo dentro del forciclo. Por tanto, el valor de la variable a sigue siendo 2 al final.

dejar no permite izar

Las variables declaradas con varse elevan a la parte superior del alcance del programa. Por ejemplo,

 console.log(a); var a; // undefined (not an error)

La palabra clave letno permite el izado. Por ejemplo,

 console.log(a); let a; // Uncaught ReferenceError: a is not defined

Si desea obtener más información sobre izado, visite JavaScript izado.

let y var Browser Support

La mayoría de los navegadores modernos admiten el uso de let. Sin embargo, algunos navegadores no son totalmente compatibles let.

Para obtener más información, visite JavaScript permite que el navegador sea compatible.

Nota : En caso de alcance global, ambos vary letse comportarán de la misma forma. Por ejemplo,

 var a = 5; // 5

La variable a tendrá un alcance global y se puede acceder a ella en cualquier parte del programa.

 let a = 5; // 5

La variable a tendrá un alcance global y se puede acceder a ella en cualquier parte del programa.

Articulos interesantes...