Разница между == и === в JavaScript [дубликат]
Возможные Дубликаты:
Javascript = = = vs ==: имеет ли значение, какой" равный " оператор я использую?
в чем разница между ==
и ===
в JavaScript? Я тоже видел !=
и !==
операторы. Есть ли еще такие операторы?
2 ответа:
===
и!==
строгие операторы сравнения:JavaScript имеет как строгий, так и сравнение равенства преобразования типов. Ибо
strict
равенство объектов сравниваемые должны иметь один и тот же тип и:
- две строки строго равны, когда они имеют одинаковую последовательность символы одинаковой длины и одинаковые символы в соответствующих позициях.
- два числа строго равны, когда они численно равны (имеют то же значение).
NaN
- это не равно ничему, включаяNaN
. Положительные и отрицательные нули равны друг к другу.- два логических операнда строго равны, если оба истинны или оба являются ложными.
- два объекта строго равны, если они относятся к одному и тому же
Object
.Null
иUndefined
типы==
(но не===
). [То есть (Null==Undefined
) составляетtrue
а (Null===Undefined
) являетсяfalse
]
Взгляните сюда: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