soy bastante novato en JS
, y hace poco estaba viendo la diferencia entre let
, var
y const
, todo lo entendi a la perfeccion, sin embargo me llamo la atencion que en todos los videos que vi nunca se mecionaba que se podian declarar variables sin ninguna de estas, de hecho algunos dijeron incluso que no poner nada era igual a var
, es decir ...
Que esto ...
var variable = 10;
Es lo mismo que esto ...
variable = 10;
Y si bien el alcance que tienen es el mismo (scope de funcion), el hoisting
no aplica de la misma forma ...
codigo:
console.log(`variable antes de su declaracion ${variable}`);
var variable = 10;
console.log(`variable despues de su declaracion ${variable}`);
salida con node 10.19:
variable antes de su declaracion undefined
variable despues de su declaracion 10
Ahora si no usamos var ...
codigo:
console.log(`variable antes de su declaracion ${variable}`);
variable = 10;
console.log(`variable despues de su declaracion ${variable}`);
salida:
/home/santiago/Escritorio/Mantis/JS__HTML__CSS/practicas/js/script.js:1
console.log(`variable antes de su declaracion ${variable}`);
^
ReferenceError: variable is not defined
at Object.<anonymous> (/home/santiago/Escritorio/Mantis/JS__HTML__CSS/practicas/js/script.js:1:49)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
Mi duda es la siguiente: si en realidad no son lo mismo, por que no se meciona en ningun lado? o sera que en realidad si son lo mismo pero hay algo de lo que aun no me he enterado?