Je fais quelques expériences avec cette ligne JavaScript malveillant: var undefined = true;
var undefined = true;
Chaque variable non initialisée en JavaScript a la valeur de undefined
qui est juste une variable qui contient la valeur spéciale de 'undefined'
, de sorte que le suivant doit exécuter le alert
:
var undefined = true,
x;
if (x) {
alert('ok');
}
Mais ce n'est pas le cas, et ma question est pourquoi?
sur l'expérimentation plus loin, j'essayé ce qui suit:
var undefined = true,
x = undefined;
if (x) {
alert('ok');
}
Cette fois, le alert
est exécuté.
Donc ma question est ... puisque dans le premier extrait x
détient undefined
(parce qu'il n'est pas initialisé), pourquoi n'a pas exécuté le alert
? La chose étrange est que lorsque l'on affirme explicitement que x
est undefined
(x = undefined
), le alert
exécuté ...
Hehe; que se passerait-il si la variable 'undefined' était la valeur' undefined'? – Pindatjuh
@Pindatjuh: le même que si la variable avait un autre nom. Il n'y a rien de spécial à propos d'une variable nommée 'undefined'. – dtb