Le 20/04/2008 07:24, Une Bévue a écrit :
Parce que le paragraphe 11.9.6 de la norme dit que ça doit être le cas
pour des objets qui ne sont pas de type Undefined, Null, Number, String
ou Boolean, et qui ne sont ni « le même objet » ni « des objets joints »
(au sens du paragraphe 13.1.2). C'est d'ailleurs le principal intérêt de
l'opérateur ===.
pourquoi "intérêt" de l'opérateur, perso ça m'a surpris, mais j'ai
plutôt une formation en maths qu'en info, de là ma difficulté avec ces
opérateurs j'ai tendance à les prendre comme identité...
L'intérêt d'avoir deux opérateurs, c'est justement de pouvoir faire la
distinction entre l'égalité (==) et l'identité (===). Ici, tu as deux
objets distincts (il n'y a donc pas identité : tu peux modifier l'un
sans modifier l'autre) mais qui se trouvent avoir les mêmes valeurs
(il y a donc égalité). Pourquoi ne pas utiliser plutôt l'opérateur == ?
<http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf>.
dommage qu'ils n'aient pas prévu un système de navigation dans ce
document. (aussi la pagination est fausse)
Si le c½ur t'en dit, n'hésite pas à fournir une version HTML de ce
document PDF. Tu peux même le traduire en français, ce serait sympa.
Merci !
(Et la pagination n'est pas fausse, mais c'est peut-être la première
fois que tu vois la version électronique d'un document destiné à être
imprimé.)
je lis :
2. If Type(x) is Undefined, return true.
3. If Type(x) is Null, return true.
très surprenant, heureusement dans ma comparaison j'ai supprimé ces cas
là...
Qu'est-ce qui te surprend dans le fait que undefined === undefined et
que null === null ?
de même je ne comprend pas le test : if(p)
enfin, ce que je veux dire, je ne comprend pas le choix qui a été fait
je me suis fait avoir récemment avec un "if(this[p])"
où je voulais tester l'existence de la propriété p pour l'objet this,
pas de pot je suis tombé sur un cas où this[p]=0;
et donc ça m'a retourné faux quand j'escomptais true ;-)
Vu comment tu rajoutes des \ au petit bonheur la chance au lieu
d'essayer de comprendre les choses, je dois dire que ça ne m'étonne
pas que tu te fasses souvent surprendre... ;-)