Javascript Equality Operators Equal(==) and Not Equal(!=)

Introduction

The equal operator in Javascript is the double equal sign (==).

It returns true if the operands are equal.

The not-equal operator is !=.

It returns true if two operands are not equal.

Both operators do conversions to determine if two operands are equal.

When performing conversions, the equal and not-equal operators follow these basic rules:

  • If an operand is a Boolean value, convert it into a numeric value before checking for equality. A value of false converts to 0, whereas a value of true converts to 1.
  • If one operand is a string and the other is a number, attempt to convert the string into a number before checking for equality.
  • If one of the operands is an object and the other is not, the valueOf() method is called on the object to retrieve a primitive value to compare according to the previous rules.

The operators also follow these rules when making comparisons:

  • Values of null and undefined are equal.
  • Values of null and undefined cannot be converted into any other values for equality checking.
  • If either operand is NaN, the equal operator returns false and the not-equal operator returns true.
  • If both operands are NaN, the equal operator returns false because NaN is not equal to NaN.
  • If both operands are objects, then they are compared to see if they are the same object.
  • If both operands point to the same object, then the equal operator returns true. Otherwise, the two are not equal.

The following table lists some special cases and their results:

  • EXPRESSION VALUE
  • null == undefined true
  • "NaN" == NaN false
  • 5 == NaN false
  • NaN == NaN false
  • NaN != NaN true
  • false == 0 true
  • true == 1 true
  • true == 2 false
  • undefined == 0 false
  • null == 0 false
  • "5" == 5 true



PreviousNext

Related