function chose() { var chose_nom = 'chaise'; function autre_chose() { //var chose_nom = 'table'; console.log('chose = '+chose_nom); // chose = chaise } autre_chose(); } chose();
function chose() { console.log('chose = '+chose_nom); // chose = undefined var chose_nom = 'chaise'; } chose();
Le code ici ne génère pas d'erreur : la déclaration est hissée en tête de bloc fonction et existe donc avec la valeur undefined lorsqu'elle est appelé avant d'être d'être assignée.
En gros le code devient :
function chose() { var chose_nom; console.log('chose = '+chose_nom); // chose = undefined chose_nom = 'chaise'; } chose();
Note : cela permet d'utiliser une fonction avant sa déclaration. ça n'est pas pour autant une bonne pratique et peut amener d'autres problèmes !
ma_fonction(); function ma_fonction() { console.log("bonjour"); }