Aun se utiliza la palabra reservada var? o esto cambio a la palabra reserva let?
gracias quedo atento
Aun se utiliza la palabra reservada var? o esto cambio a la palabra reserva let?
gracias quedo atento
! Hola! , por buenas prácticas ya no deberían de usarse , lo más recomendable es usar const o let , este último si la variable cambia en algún momento en el scope.
Ambas son utilizadas, pero la diferencia es su alcance, la palabra reservada "var" tiene un ámbito global, es decir que se puede acceder desde cualquier parte del código, mientras que con "let" se respetan los bloques, estos pueden ser un ciclo for, un if, incluso lo que va dentro de "{}", esta variable asignada con let solo podrá ser accedida desde su propio scope. Al usar la palabra var puedes caer en el hoisting y llevar a errores de asigancion de variables. por ejemplo:
document.write("USANDO VAR");
document.write("<br>");
var edad = 50;
document.write(`Edad antes del bloque ${edad}`);
document.write("<br>");
//se va considerar un bloque al juego de llaves {}
{
var edad = 19;
document.write(`Edad dentro del bloque ${edad}`);
}
document.write("<br>");
document.write(`la edad fuera del bloque: ${edad}`);
document.write("<br>");
document.write("<br>");
/*
lo que hace el var es el hoisting, eso como si esa edad lo sube una línea encima del bloque
document.write("USANDO VAR");
document.write("<br>");
var edad = 50;
document.write(`Edad antes del bloque ${edad}`);
document.write("<br>");
//se va considerar un bloque al juego de llaves {}
var edad = 19;
Aca el var hizo el hoisting, reasignandole el valor a la variable edad en 19, es por eso que fuera del bloque se imprime 19 y no 50 como se tenía previsto
{
document.write(`Edad dentro del bloque ${edad}`);
}
document.write("<br>");
document.write(`la edad fuera del bloque: ${edad}`);
document.write("<br>");
document.write("<br>");
*/
document.write("USANDO LET");
document.write("<br>");
let edadLet = 50;
document.write(`Edad antes del bloque ${edadLet}`);
document.write("<br>");
{
let edadLet = 19;
document.write(`Edad dentro del bloque ${edadLet}`);
}
document.write("<br>");
document.write(`la edad fuera del bloque: ${edadLet}`);
document.write("<br>");
si imprimes esto en pantalla verás que los resultados son diferentes, porque var y let trabajan en ámbitos difrentes, es un poco complicado con ese codigo, pero analiza linea por linea, espero haberte ayudado, saludos