Разница между == и === в JavaScript

Возможный дубликат:
Javascript === vs ==: Имеет ли значение, какой оператор "равно" я использую?

В чем разница между == а также === в JavaScript? Я также видел != а также !== операторы. Есть ли еще такие операторы?

2 ответа

Решение

=== а также !== Строгие операторы сравнения:

JavaScript имеет как строгое сравнение, так и сравнение равенства типов. За strict Равенство сравниваемых объектов должно иметь одинаковый тип и:

  • Две строки строго равны, если они имеют одинаковую последовательность символов, одинаковую длину и одинаковые символы в соответствующих позициях.
  • Два числа строго равны, когда они численно равны (имеют одинаковое числовое значение). NaN не равно ни к чему, в том числе NaN, Положительные и отрицательные нули равны друг другу.
  • Два булевых операнда строго равны, если оба истинны или оба ложны.
  • Два объекта строго равны, если они относятся к одному Object,
  • Null а также Undefined типы == (но нет ===). [Т.е.Null==Undefined) является true но (Null===Undefined) является false]

Операторы сравнения - MDC

Посмотрите здесь: http://longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.html

3 знака равенства означают "равенство без принуждения типов". При использовании тройного равенства значения также должны быть одинаковыми по типу.

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
Другие вопросы по тегам