JavaScript 运算符与语句全解析
1. 相等运算符
在编程中,判断两个变量是否相等是一项至关重要的操作。对于字符串、数字和布尔值,判断相等相对简单,但涉及对象时,情况就变得复杂一些。最初,ECMAScript 的相等和不相等运算符在比较前会进行类型转换,后来为了解决是否应该进行这种转换的争议,ECMAScript 提供了两组运算符:一组是在比较前进行转换的相等( ==
)和不相等( !=
)运算符,另一组是不进行转换的全等( ===
)和不全等( !==
)运算符。
1.1 相等和不相等运算符
相等运算符使用双等号( ==
),如果操作数相等则返回 true
;不相等运算符使用叹号加等号( !=
),如果操作数不相等则返回 true
。这两个运算符在比较时会进行类型转换,遵循以下规则:
- 如果操作数是布尔值,在检查相等性之前将其转换为数值。 false
转换为 0, true
转换为 1。
- 如果一个操作数是字符串,另一个是数字,在检查相等性之前尝试将字符串转换为数字。
- 如果一个操作数是对象,另一个不是,则调用对象的 valueOf()
方法获取原始值,再根据上述规则进行比较。
在比较时还遵循以下规则:
- null
和 undefi