Verifique a continuación los 2 fragmentos de código, la diferencia se vuelve a declarar como const / let y var en la función foo.
para var, se ejecuta pero para const y deja pasar el error.
Por favor, dígame por qué se comporta de manera diferente.
Below code does not through any error as a is declared as var var a=12; //Global variable foo(); //hoisting function foo() { console.log("a="+a); var a=13; console.log("a="+a); if(true) { const a=89; console.log("in block="+ a); } var a=90; //no error console.log("a="+a); }
El siguiente código muestra el error de declaración de variable "a ya se ha declarado"
var a=12; //Global variable foo(); //hoisting function foo() { console.log("a="+a); var a=13; console.log("a="+a); if(true) { const a=89; console.log("in block="+ a); } let a=90; //Or const a :: error console.log("a="+a); }