===

L’opérateur d’égalité stricte compare des valeurs sans conversion de types : true n’est obtenu que pour le même type et la même valeur.

Renvoie
true ou false.
Sur cette page

Exemple

#
JavaScript
console.log(1 === 1)
console.log(1 === '1')
console.log(1 == '1')
console.log(0 == '')
console.log(null == undefined)
console.log(null === undefined)
Console
true
false
true
true
true
false

Définition et utilisation

#

L’opérateur === renvoie true quand les deux côtés ont le même type et la même valeur. Il ne convertit rien : le nombre 1 et la chaîne "1" sont différents pour lui. Sa négation est !==.

L’opérateur souple == convertit les types selon des règles complexes avant de comparer, ce qui donne des résultats comme 0 == "" ou "1" == 1 égaux à true. C’est pourquoi === est la norme dans le code moderne. La seule exception courante est value == null, qui vérifie à la fois null et undefined.

Les objets, les tableaux et les fonctions sont comparés par référence, pas par contenu : deux objets créés séparément ne sont jamais égaux entre eux. NaN est un cas particulier, il n’est même pas égal à lui-même. Pour le détecter, on utilise Number.isNaN() et Object.is().

Syntaxe

#
Syntaxe
a === b
a !== b

Plus d’exemples

#
Objets comparés par référence
JavaScript
const a = { level: 1 }
const b = { level: 1 }
const c = a

console.log(a === b)
console.log(a === c)
console.log([1, 2] === [1, 2])
Console
false
true
false
NaN et Object.is()
JavaScript
const result = Number('abc')

console.log(result === NaN)
console.log(Number.isNaN(result))
console.log(Object.is(result, NaN))
Console
false
true
true
Les données de formulaire sont des chaînes
JavaScript
const input = '5'
const correctAnswer = 5

console.log(input === correctAnswer)
console.log(Number(input) === correctAnswer)
Console
false
true

Les valeurs des champs de formulaire et des paramètres d’URL sont toujours des chaînes. Convertissez-les explicitement en nombre avant de comparer, plutôt que de compter sur ==.

Compatibilité des navigateurs

#

Largement disponible

Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.

  • Chrome
  • Edge
  • Firefox
  • Safari

Bonnes pratiques

#
  • Écrivez toujours === et !==. Si vous comparez des valeurs de types différents, faites la conversion explicitement, par ex. avec Number(value) ou String(value).
  • Pour comparer le contenu de deux tableaux ou objets, comparez des champs précis ou utilisez une fonction de comparaison profonde. === vérifie seulement s’il s’agit du même objet.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.