Вопрос: Разница между == и === в JavaScript [дубликат]


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

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


1395


источник


Ответы:


===а также !==являются строгими операторами сравнения:

JavaScript имеет как строгие, так и   сравнение преобразования типов.   Для строгого равенства объекты   сравниваемые должны иметь один и тот же тип и:

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

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


1068



Посмотрите здесь: 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

1740