JavaScript Opérateurs relationnels (<, <=,>,> =)


Exemple

Lorsque les deux opérandes sont numériques, ils sont comparés normalement:

1 < 2        // true
2 <= 2       // true
3 >= 5       // false
true < false // false (implicitly converted to numbers, 1 > 0)

Lorsque les deux opérandes sont des chaînes, elles sont comparées lexicographiquement (selon l’ordre alphabétique):

'a' < 'b'    // true
'1' < '2'    // true
'100' > '12' // false ('100' is less than '12' lexicographically!)

Lorsqu'une opérande est une chaîne et que l'autre est un nombre, la chaîne est convertie en nombre avant la comparaison:

'1' < 2      // true
'3' > 2      // true
true > '2'   // false (true implicitly converted to number, 1 < 2)

Lorsque la chaîne est non numérique, la conversion numérique renvoie NaN (pas un nombre). La comparaison avec NaN renvoie toujours false :

1 < 'abc'    // false
1 > 'abc'    // false

Mais soyez prudent lorsque vous comparez une valeur numérique avec des chaînes null , undefined ou vides:

1 > ''        // true
1 < ''        // false
1 > null      // true
1 < null      // false
1 > undefined // false
1 < undefined // false

Lorsqu'un opérande est un objet et que l'autre est un nombre, l'objet est converti en nombre avant la comparaison. Ainsi, null est un cas particulier car Number(null);//0

new Date(2015)< 1479480185280            // true
null > -1                                //true
({toString:function(){return 123}}) > 122  //true