Inférieur strict (<)

L'opérateur inférieur strict (<) renvoie true si son opérande gauche est strictement inférieur à son opérande droit et false sinon.

Exemple interactif

Syntaxe

js
x < y;

Description

Les opérandes sont comparés avec l'algorithme de comparaison abstraite relationnelle résumé comme suit :

  • Tout d'abord, les objets sont convertis en valeurs primitives avec Symbol.ToPrimitive en utilisant le paramètre hint avec la valeur 'number'.
  • Si les deux valeurs sont des chaînes de caractères, elles sont comparées comme telles selon les valeurs des codes Unicode qu'elles contiennent.
  • Sinon, le moteur JavaScript tente de convertir les valeurs primitives non-numériques en valeurs numériques :
    • Les valeurs booléennes true et false sont respectivement converties en 1 et 0.
    • null est converti en 0.
    • undefined est converti en NaN.
    • Les chaînes de caractères sont converties en fonction de la valeur qu'elles contiennent et, si elles ne contiennent pas de valeurs numériques, elles sont converties en NaN.
  • Si l'une des valeurs vaut NaN, l'opérateur renverra false.
  • Sinon, les valeurs sont comparées numériquement.

Exemples

Comparaison numérique

js
console.log(5 < 3); // false
console.log(3 < 3); // false
console.log(3 < 5); // true

Comparaison entre un nombre et un BigInt

js
console.log(5n < 3); // false
console.log(3 < 5n); // true

Comparaison entre chaînes de caractères

js
console.log("a" < "b"); // true
console.log("a" < "a"); // false
console.log("a" < "3"); // false

Comparaison entre nombres et chaînes de caractères

js
console.log("5" < 3); // false
console.log("3" < 3); // false
console.log("3" < 5); // true

console.log("coucou" < 5); // false
console.log(5 < "coucou"); // false

console.log("5" < 3n); // false
console.log("3" < 5n); // true

Comparaison avec des booléens, null, undefined, NaN

js
console.log(true < false); // false
console.log(false < true); // true

console.log(0 < true); // true
console.log(true < 1); // false

console.log(null < 0); // false
console.log(null < 1); // true

console.log(undefined < 3); // false
console.log(3 < undefined); // false

console.log(3 < NaN); // false
console.log(NaN < 3); // false

Spécifications

Specification
ECMAScript Language Specification
# sec-relational-operators

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi