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