2011-08-21 4 views

Répondre

3

C'est équivalent à:

console.log((100 < 210) < 200); 

qui équivaut à:

console.log(true < 200); 

Et cela évalue à true parce que lors de l'utilisation des opérateurs tels que <, true est traitée comme si elle était un 1

Par conséquent, ce qui suit évaluera à false:

console.log(true < 0) 
2

100 < 210 < 200 est équivalent à (100 < 210) < 200 wh C'est true < 200 qui est 1 < 200 qui est true.

Ce dernier bit (true devenant 1) peut être un peu surprenant. C'est le résultat de la façon dont JavaScript effectue les opérations relationnelles (Section 11.8.5 de la spécification), qui indique entre autres que si la relation est entre un non-numéro (autre que null ou undefined) et un nombre, vous convertissez le non-nombre en un le nombre et la conversion de true à un nombre produit 1 (Section 9.3 de la spécification.)

Questions connexes