比较运算符和等号

  • 15.1 优先使用 ===!== 而不是 ==!=.
  • 15.2 条件表达式例如 if 语句通过抽象方法 ToBoolean 强制计算它们的表达式并且总是遵守下面的规则:

    • 对象 被计算为 true
    • Undefined 被计算为 false
    • Null 被计算为 false
    • 布尔值 被计算为 布尔的值
    • 数字 如果是 +0、-0、或 NaN 被计算为 false, 否则为 true
    • 字符串 如果是空字符串 '' 被计算为 false,否则为 true
    1. if ([0]) {
    2. // true
    3. // An array is an object, objects evaluate to true
    4. }
  • 15.3 使用简写。

    1. // bad
    2. if (name !== '') {
    3. // ...stuff...
    4. }
    5. // good
    6. if (name) {
    7. // ...stuff...
    8. }
    9. // bad
    10. if (collection.length > 0) {
    11. // ...stuff...
    12. }
    13. // good
    14. if (collection.length) {
    15. // ...stuff...
    16. }
  • 15.4 想了解更多信息,参考 Angus Croll 的 Truth Equality and JavaScript