Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Inférieur strict (<)

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

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

console.log(5 < 3);
// Expected output: false

console.log(3 < 3);
// Expected output: false

// Compare bigint to number
console.log(3n < 5);
// Expected output: true

console.log("aa" < "ab");
// Expected output: true

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® 2026 Language Specification
# sec-relational-operators

Compatibilité des navigateurs

Voir aussi