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