Voyons ces quelques exemples :
alert( false == 0 ) //affiche true
alert( false == "" ) //affiche true
alert( true== 1 ) //affiche true
alert( "1"== 1 ) //affiche true
alert( "01"== 1 ) //affiche true
alert( "0000001"== 1 ) //affiche true
alert( [1]== 1 ) //affiche true
alert( ["1"]== 1 ) //affiche true
alert( " +2"== 2 ) //affiche true
alert( ""== 0 ) //affiche true
alert( " "== 0 ) //affiche true
alert( "\n"== 0 ) //affiche true
alert( "\ "== 0 ) //affiche true
alert( "\r\n "== 0 ) //affiche true
alert( "\t "== 0 ) //affiche true
Un peu étrange comme résultats, La raison est que JavaScript est faiblement typé et ne pas oublier que pour les exemples précédents
l’opérateur === est plus adapté
alert( false === 0 ) //affiche false
alert( false === "" ) //affiche false
alert( true === 1 ) //affiche false
alert( "1" === 1 ) //affiche false
alert( "01" === 1 ) //affiche false
......
d'autres situations reste excitantes je dirais .Exemples:
alert( 2 == true+1 ) //affiche true
alert( 2 === true+1 ) //affiche true
alert( 2 == true+1 ) //affiche true
if( undefined ) //évalué a false
if( null ) //évalué a false
if( "" ) //évalué a false
if( 0 ) //évalué a false
var c;
if( c) //évalué a false
c=null;
if( c) //évalué a false
c="";
if( c) //évalué a false
c=0;
if( c) //évalué a false
c=1;
if( c) //évalué a true
c=undefined ;
if( c) //évalué a false
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire