===
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
trueoufalse.
Exemple
#console.log(1 === 1)
console.log(1 === '1')
console.log(1 == '1')
console.log(0 == '')
console.log(null == undefined)
console.log(null === undefined)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
#a === b
a !== bPlus d’exemples
#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])const result = Number('abc')
console.log(result === NaN)
console.log(Number.isNaN(result))
console.log(Object.is(result, NaN))const input = '5'
const correctAnswer = 5
console.log(input === correctAnswer)
console.log(Number(input) === correctAnswer)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. avecNumber(value)ouString(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
#- &&, ||, !Les opérateurs logiques ET (&&), OU (||) et NON (!). Ils combinent des conditions, et && et || renvoient l’un de leurs côtés.
- typeofRenvoie une chaîne avec le nom du type d’une valeur, par ex. "number", "string" ou "object".
- switchCompare une valeur à une liste de cas case et exécute le code à partir du premier qui correspond.
- if...elseExécute un bloc de code seulement si une condition est vraie, et sinon un bloc else optionnel.
- Number.isNaN()Vérifie si une valeur est exactement NaN.
- Object.is()Vérifie si deux valeurs sont identiques. Elle ne diffère de === que pour NaN, ainsi que pour 0 et -0.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.