Возможные дубликаты:
Javascript === vs ==: Имеет ли значение, какой оператор "равный" я использую?
Оператор Javascript! ==
Посмотрите эту фиксацию
Является ли !=
таким же, как !==
в JavaScript?
[1]:
Возможные дубликаты:
Javascript === vs ==: Имеет ли значение, какой оператор "равный" я использую?
Оператор Javascript! ==
Посмотрите эту фиксацию
Является ли !=
таким же, как !==
в JavaScript?
[1]:
Они тонко не совпадают.
!=
проверяет значение
!==
проверяет значение и тип
'1' != 1 // false (these two are the same)
'1' !== 1 // true (these two are **not** the same).
В предыдущем примере. Первая половина выражения - это строка, вторая половина - целое число.
Из
http://en.wikipedia.org/wiki/JavaScript_syntax#Operators
! == Не идентично
!= Не равно
И "Идентичные средства равны и одного и того же типа."
С
http://docstore.mik.ua/orelly/webprog/jscript/ch05_04.htm
"В JavaScript числа, строки и логические значения сравниваются по значению. ... С другой стороны, объекты, массивы и функции сравниваются по ссылке. "
-
Итак, в общем, они одинаковы? Нет, потому что есть дополнительный тест с! == (over! =) Для идентичности типа и равносильности.
Нет, это не то же самое. См. Например здесь.
4 !== '4' returns true (and 4 === '4' returns false)
4 != '4' returns false (and 4 == '4' returns true)
Большая разница в том, что!= выполняет принуждение типа. То есть, одно значение эффективно передается другому, прежде чем будет проверено равенство. Вот почему, как в ответе Амадиэра:
'1' != 1
принимает значение false. То же самое справедливо и для == v. ===. В общем, избегайте == и! =, Если вы специально не хотите, чтобы принуждение выполнялось. Используйте === и! == и проверьте точно результат, который вы ищете.
Проверяет не только значение, но и тип сравниваемых вещей. Это также относится к php и некоторым другим языкам.
Посмотрите JSLint для объяснения разницы. Я бы посоветовал вам хотя бы раз пропустить свой код JavaScript через JSLint, вы можете узнать ценные вещи...