¿Cómo se sobrescribe la variable de la fruta en el bloque if, pero la variable de color no se sobrescribe en el bloque de funciones?
var fruit = "apple"; if(fruit){ var fruit = "mango"; console.log(fruit); // mango } console.log(fruit); // mango var color = "blue"; function displayColor(){ var color = "red"; console.log(color); } displayColor(); // red console.log(color); // blueLa diferencia es que la función crea un alcance local. Por lo tanto, crea una variable en el alcance de la función y la descarta cuando finaliza la función, dejando intacta la variable de color GLOBAL.
Si las declaraciones no hacen un alcance, entonces solo está redefiniendo la variable de la fruta en el alcance global.