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");
}