Dans l'exemple suivant, JavaScript semble ignorer complètement mon return
et de poursuivre l'exécution du code.
var x = 1;
(function() {
x = 2;
return;
var x = 3;
})();
console.log(x); // Outputs 1 in both Chrome and FF
Le code devrait certainement produire le résultat suivant 2
? Si j'enlève le var
mot-clé de var x = 3
, il produit 2
comme prévu. Y a-t-il une étrange optimisation du compilateur à l'œuvre ici ?