* [15.1](https://github.com/yuche/javascript#15.1) 优先使用 `===` 和 `!==` 而不是 `==` 和 `!=`.
* [15.2](https://github.com/yuche/javascript#15.2) 条件表达式例如 `if` 语句通过抽象方法 `ToBoolean` 强制计算它们的表达式并且总是遵守下面的规则:
* **对象** 被计算为 **true**
* **Undefined** 被计算为 **false**
* **Null** 被计算为 **false**
* **布尔值** 被计算为 **布尔的值**
* **数字** 如果是 **+0、-0、或 NaN** 被计算为 **false**, 否则为 **true**
* **字符串** 如果是空字符串 `''` 被计算为 **false**,否则为 **true**
~~~
if ([0]) {
// true
// An array is an object, objects evaluate to true
}
~~~
* [15.3](https://github.com/yuche/javascript#15.3) 使用简写。
~~~
// bad
if (name !== '') {
// ...stuff...
}
// good
if (name) {
// ...stuff...
}
// bad
if (collection.length > 0) {
// ...stuff...
}
// good
if (collection.length) {
// ...stuff...
}
~~~
* [15.4](https://github.com/yuche/javascript#15.4) 想了解更多信息,参考 Angus Croll 的 [Truth Equality and JavaScript](http://javascriptweblog.wordpress.com/2011/02/07/truth-equality-and-javascript/#more-2108)。
- 关于
- 1. 类型
- 2. 引用
- 3. 对象
- 4. 数组
- 5. 解构
- 6. 字符串
- 7. 函数
- 8. 箭头函数
- 9. 构造函数
- 10. 模块
- 11. Iterators & Generators
- 12. 属性
- 13. 变量
- 14. 提升
- 15. 比较运算符 & 等号
- 16. 代码块
- 17. 注释
- 18. 空白
- 19. 逗号
- 20. 分号
- 21. 类型转换
- 22. 命名规则
- 23. 存取器
- 24. 事件
- 25. jQuery
- 26. ECMAScript 5 兼容性
- 27. ECMAScript 6 编码规范
- 28. 测试
- 29. 性能
- 30. 资源
- 31. 使用人群
- 32. 翻译
- 33. JavaScript 编码规范说明
- 34. 一起来讨论Javascript
- 35. Contributors
- 36. License