Let var const difference javascript w3schools
Declaración de variables vs. InicializaciónPara almacenar cualquier valor, necesitamos una variable, así que primero declararemos una variable var y luego inicializaremos el valor en la variable.Veámoslo con un ejemplo-var miNombre;
En el ejemplo anterior, declaramos una variable miNombre en la primera línea y luego inicializamos el valor de la cadena “mi nombre” en la segunda línea.En el ejemplo anterior, tomamos un enfoque de dos pasos, primero declaramos una variable y luego la inicializamos, pero podemos hacer la declaración y la inicialización al mismo tiempo así -var miNombre = “mi nombre”;
En el ejemplo, hacemos una función nombre() y luego declaramos una variablemiEdad dentro de la función, cuando llamamos a la función, imprime la variablemiEdad en la consola, pero cuando tratamos de acceder a la variable fuera de la función, está lanzando un Error de Referencia. Block-scopeBlock significa un par de corchetes, un bloque puede ser cualquier cosa que contenga un corchete de apertura y cierre.La variable que tiene Block-scope sólo estará disponible para su uso dentro del bloque que declaró, no será accesible fuera del bloque, y dará Error de Referencia si tratamos de acceder.Aquí está un ejemplo -if(true) {
Preguntas de la entrevista sobre var y const
En segundo lugar, herramientas como Babel y Traceur no hacen que ES6 “funcione” en un navegador antiguo, sino que convierten el código ES6 en ES5 que hace aproximadamente lo mismo. Es probable que Traceur convierta las sentencias const en sentencias var, pero dudo que siempre esté aplicando que la semántica de una sentencia const se replique exactamente en ES5. Usar JS Bin para ejecutar ES6 usando Traceur no va a dar exactamente los mismos resultados que ejecutar ES6 en un navegador totalmente compatible con la especificación ES6.
Probablemente la mejor manera de hacer un objeto (superficialmente) inmutable en este momento es usar Object.freeze() en él. Sin embargo, esto sólo hace que el objeto en sí mismo sea de sólo lectura; los valores de las propiedades del objeto pueden seguir siendo mutados.
Por otro lado, el uso de ES6 const es muy parecido al uso de let, pero una vez que se asigna un valor, no puede ser cambiado. Utilice const como un valor inmutable para evitar que la variable sea reasignada accidentalmente:
Si una variable es declarada usando let o const dentro de un bloque de código (denotado por llaves { }), entonces la variable queda atrapada en lo que se conoce como la zona muerta temporal hasta que la declaración de la variable sea procesada. Este comportamiento evita que se pueda acceder a las variables hasta después de haberlas declarado.
Deje que javascript
z = 6; //Error1234567var x = 1;let y = 2;const z = 3; x = 4; //OK y = 5; //OK z = 6; //ErrorComo puedes ver, las variables var y let pueden ser reasignadas, pero las variables const no.Otra diferencia entre var y let/const es que las variables var son de ámbito funcional, mientras que las let y const son de ámbito de bloque.Esto significa que las variables var sólo están disponibles dentro de la función en la que fueron declaradas. Por ejemplo
console.log(x); // ReferenceError: x no está definida123456function foo() { var x = 1;} foo();console.log(x); // ReferenceError: x no está definidaPor otro lado, las variables let y const sólo están disponibles dentro del bloque en el que fueron declaradas. Por ejemplo:
console.log(z); // ReferenceError: z no está definida12345678function foo() { let y = 2; const z = 3;} foo();console.log(y); // ReferenceError: y no está definida console.log(z); // ReferenceError: z no está definidaEn resumen, las principales diferencias entre var, let y const son: js variable
Let vs var javascript
Esto es diferente a la mayoría de los lenguajes de programación donde esta variable no estaría disponible fuera del bloque if. Otra cosa a tener en cuenta sobre el alcance de las funciones es que si la variable se declara fuera de cualquier función, entonces la variable es una variable global disponible en todas partes. El siguiente ejemplo es casi idéntico al anterior, pero no hay ninguna función circundante, por lo que la variable nombre está disponible en todas partes.if (true) {
Otras diferencias entre Var y Let/ConstAunque el ámbito de bloque frente al de función es la mayor diferencia entre la antigua palabra clave var y las nuevas palabras clave let/const, todavía hay algunas otras diferencias entre ellas. Una de las principales diferencias es que las variables definidas por var son hoisted, lo que significa que están disponibles para ser utilizadas incluso antes de ser definidas. Por ejemplo, el siguiente código no arrojará ningún error aunque la variable se defina después de ser utilizada por primera vez.console.log(nombre)
La última diferencia importante, es que las variables var pueden ser redeclaradas con la palabra clave var, mientras que tratar de redeclarar una variable con la palabra clave let arrojará un error. Por ejemplo, el siguiente código cambiará la variable name.var name = ‘Kyle’