всегда До тех пор, пока вы полностью не поймете различия и последствия использования операторов ==
и ===
, используйте оператор ===
, поскольку это спасет вас от неясности ( неочевидные) ошибки и WTF. «Обычный» оператор ==
может привести к очень неожиданным результатам из-за приведения типов внутри, поэтому использование ===
всегда является рекомендуемым подходом.
Для понимания этого и других «хороших и плохих» частей Javascript читайте о Дугласе Крокфорде и его работе. В Google Tech Talk есть отличная информация: http://www.youtube.com/watch?v=hQVTIJBZook
Обновление:
Серия You Not Know JS от Kyle Simpson превосходна (и бесплатна для чтения в Интернете). Эта серия статей посвящена часто неверно понимаемым областям языка и объясняет «плохие стороны», которые Крокфорд предлагает вам избежать. Поняв их, вы сможете правильно их использовать и избежать ловушек.
Книга " Up & Going " включает в себя раздел Равенство , в котором содержится конкретное описание того, когда использовать свободный (==
) против строгого (===
) операторы:
Чтобы свести множество деталей к нескольким простым выносам и помочь вам узнать, использовать ли ==
или ===
в различных ситуациях, вот мои простые правила:
- Если какое-либо значение (также известное как сторона) в сравнении может быть значением
true
или false
, избегайте ==
и используйте ===
.
- Если любое из значений в сравнении может иметь эти конкретные значения (
0
, ""
или []
- пустой массив), избегайте ==
и используйте ===
.
- В во всех других случаях вы можете безопасно использовать
==
. Это не только безопасно, но и во многих случаях упрощает ваш код таким образом, чтобы улучшить читаемость.
Я все еще рекомендую выступление Крокфорда для разработчиков, которые не хотят тратить время на то, чтобы по-настоящему понять Javascript - это хороший совет для разработчика, который лишь изредка работает в Javascript.