Donc si tu veux tester précisément si ta variable est non initialisée / inexistante ou null tu ne peux pas utiliser ==. Si tu veux tester si tu as une chaine vide ou rien, tu ne peux pas utiliser ==.
Le « pas certain » ne pose en fait pas vraiment de problème, il faut juste comprendre ce qui est vrai et ce qui est faux. Parfois c'est simple, il n'y a qu'un booléen (ou une expression) qui puisse être vrai ou fausse. Parfois c'est un peu plus complexe que ça. C'est comme == / equals en java (enfin le problème n'est pas le même, mais le fait de tester deux choses différentes, mais pas tout le temps)
Les gens qui ont permis des conversion implicites dans les comparaisons doivent être satanistes pour en vouloir autant aux autres développeurs.
Non. Il faut bien voir aussi que ce qui est traité en javascript est, initialement, essentiellement textuel. Par exemple, si je te demande de saisir un entier dans un champ d'une page web, je vais recevoir une chaine de caractère. De la sorte, traiter 0 et "0" de la même manière a du sens puisque initialement tu ne peux pas faire la différence. Cette souplesse a des avantages, et des inconvénients. Il faut juste l'apprendre et l'utiliser à bon escient. Comme toute spécificité d'un langage.
[^] # Re: Petite question ...
Posté par CrEv (site web personnel) . En réponse au journal Deux nouvelles pour Qt. Évalué à 5.
Parce qu'il y a conversion implicite de type.
Le résultat donne :
Donc si tu veux tester précisément si ta variable est non initialisée / inexistante ou null tu ne peux pas utiliser ==. Si tu veux tester si tu as une chaine vide ou rien, tu ne peux pas utiliser ==.
Le « pas certain » ne pose en fait pas vraiment de problème, il faut juste comprendre ce qui est vrai et ce qui est faux. Parfois c'est simple, il n'y a qu'un booléen (ou une expression) qui puisse être vrai ou fausse. Parfois c'est un peu plus complexe que ça. C'est comme == / equals en java (enfin le problème n'est pas le même, mais le fait de tester deux choses différentes, mais pas tout le temps)
Non. Il faut bien voir aussi que ce qui est traité en javascript est, initialement, essentiellement textuel. Par exemple, si je te demande de saisir un entier dans un champ d'une page web, je vais recevoir une chaine de caractère. De la sorte, traiter 0 et "0" de la même manière a du sens puisque initialement tu ne peux pas faire la différence. Cette souplesse a des avantages, et des inconvénients. Il faut juste l'apprendre et l'utiliser à bon escient. Comme toute spécificité d'un langage.