NOTA: La extension vista en clase para correr el codigo por bloques se llama Code Runner de Jun Han y tener instalado NodeJS
En el siguiente ejemplo se muestra una funcion con una condicion y una variable resultado
la cual no tiene ninguna palabra reservada.
function mayor_de_edad(edad){
if(edad >= 18){
resultado = "Eres mayor de edad";
}else{
resultado = "Eres menor de de edad";
}
console.log (resultado) ;
}
mayor_de_edad(18);
Por lo tanto en el console.log
puede acceder a ella y mostar el resultado.
Eres mayor de edad
NOTA: Esto tambien hubiera ocurrido de igual manera si la variable hubiera sido declarada con var
Por otra parte si se hubiera declarado con la palabra reservada let
o const
el codigo mostraria un error en el console.log
debido a que no tiene alcance (scope) para la variable resultado
function mayor_de_edad(edad){
if(edad >= 18){
let resultado = "Eres mayor de edad";
}else{
let resultado = "Eres menor de de edad";
}
console.log(resultado);
}
mayor_de_edad(18);
En el caso de las arrow functions, no se genera un scope local si no que tienen acceso al scope mas cercano a ellas, por lo tanto en innerFunction
puede imprimir sin problemas el valor de x
const outerFunction = () => {
const x = 10;
const innerFunction = () => {
console.log(x);
};
innerFunction();
};
outerFunction();