|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 871 ![]() |
Code :
désolé, il 4h du mat et je m'ennuyais. EDIT: Après relecture je trouve mes explications peu claires donc en gros à gauche nous avons un string que nous comparons à droite à un booléen puisque le ! inverse notre valeur au format booléen. Donc notre membre de droite vaut "false" puisque le string était true (non vide). Enfin notre égalité tente donc de comparer un string ( "0" ) à un booléen ( false ) le plus court chemin (casting de type ) entre les deux est l'entier. Car pour convertir notre string ( bon la machine ne réfléchit pas exactement comme ça, mais pas loin non plus ) il suffit d'enlever les apostrophes au membre de gauche pour obtenir l'entier ( 0 ) quant au membre de droite il peut également être directement traduit en entier car les valeurs booléennes true et false valent en réalité respectivement 1 et 0. Maintenant que nos valeurs sont de même type, elle peuvent être comparées, et aussi surprenant que cela puisse paraître, 0 est bien égal à 0.^^ nb: j'ai eu tellement de problème avec ces maudits "0" que je voulais le mettre sous une jolie forme ^^ pour infos : Boolean('0'); // TRUE (car string2bool => ('0'.length) > 0) Boolean(!'0'); // FALSE (car !(string2bool) ) Boolean('0'==false); // TRUE (car (string2int('0')==bool2int(false)==0) est vrai) Boolean(!'0'==false); // TRUE (car !(string2bool)==false ) ![]() je vous laisse devenir cinglés ! edit: j'espère que TOUS ceux qui liront ça, utiliseront dorénavant TOUJOURS les opérateurs "===" et "!==". edit2: et un exemple concret bien chiant : Code :
|
||||
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Mathias PhilippeDéveloppeur Web Inscription : septembre 2011 Messages : 75 ![]() |
Merci de partager tes lubies nocturnes.
En effet, ce genre de comportement étonnant pousse vraiment à utiliser "===" et "!==", d'autant plus que c'est le genre de bug bien chiant à pister ensuite. |
|
00
|
|
|
#3 | |
|
Expert Confirmé Sénior
![]() ![]() Inscription : avril 2004 Messages : 4 795 ![]() |
Pour simple commentaire je citerai ta signature
Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com