Comparaison et évaluation d'expressions logiques JQuery JavaScript expressions

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( == true+1 )   //affiche true 
alert( === true+1 )   //affiche true 
alert( == 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;

ifc)    //évalué a  false
c=null;
ifc)    //évalué a  false
c="";
ifc)    //évalué a  false
c=0;
ifc)    //évalué a  false
c=1;
ifc)    //évalué a  true
c=undefined ;
ifc)    //évalué a  false



0 commentaires:

Enregistrer un commentaire