web-dev-qa-db-fra.com

Différence entre == et === en JavaScript

Duplicate possible:
Javascript === vs ==: Est-ce que l'opérateur "égal" que j'utilise est important?

Quelle est la différence entre == et === en JavaScript? J'ai aussi vu les opérateurs != et !==. Y a-t-il plus d'opérateurs de ce type?

1566
Shiva

=== et !== sont des opérateurs de comparaison stricts:

JavaScript a une comparaison d'égalité stricte et de conversion de type. Pour strict égalité, les objets comparés doivent avoir le même type et:

  • Deux chaînes sont strictement égales lorsqu'elles ont la même séquence de caractères, la même longueur et les mêmes caractères aux positions correspondantes.
  • Deux nombres sont strictement égaux quand ils sont numériquement égaux (ont la même valeur numérique). NaN n'est égal à rien, y compris NaN. Les zéros positifs et négatifs sont égaux.
  • Deux opérandes booléens sont strictement égaux si les deux sont vrais ou tous les deux faux.
  • Deux objets sont strictement égaux s’ils se réfèrent au même Object.
  • Les types Null et Undefined sont == (mais pas ===). [C'est à dire. (Null==Undefined) est true mais (Null===Undefined) est false]

Opérateurs de comparaison - MDC

1156
Jack Sleight

Jetez un oeil ici: http://longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.html

Les 3 signes égaux signifient "égalité sans contrainte de type". En utilisant le triple égal, les valeurs doivent également être du même type.

0 == false   // true
0 === false  // false, because they are of a different type
1 == "1"     // true, automatic type conversion for value only
1 === "1"    // false, because they are of a different type
null == undefined // true
null === undefined // false
'0' == false // true
'0' === false // false
1908
sdfx