1, 一元操作符
- 递增和递减操作符
操作符对任何值都适用,不仅适用于整数,还可以用于字符串,布尔值,浮点数值和对象。遵循规则查阅《JavaScript高级程序设计》p37页。 - 一元加和减操作符
对非数值应用一元加操作符时,该操作符会像Number()转型函数一样对这个值执行转换。
2, 位操作符
ECMAScript中所有数值都是以IEEE-754 64位格式存储,但操作符并不直接操作64位的值,而是先将64位的值转换成32位的证书,然后执行操作,最后再将结果转换回64位,对于开发人员来说,64位存储格式是透明的,整个过程就像在32位的整数一样。
在对特殊的NaN和Infinity值应用位操作时,这两个值都会被当成0来处理。
- 按位非
- 按位与
- 按位或
- 按位异或
- 左移
- 有符号的右移
- 无符号的右移
3, 布尔操作符
- 逻辑非
可以应用于ECMAScript中的任何值,这个操作符都会返回一个布尔值,遵循的规则见《JavaScript高级程序设计》p44。 - 逻辑与
属于短路操作,可以应用于ECMAScript中的任何值,在有一个操作数不是布尔值的情况下,这个操作符都会不一定返回一个布尔值,遵循的规则见《JavaScript高级程序设计》p45。 逻辑或
属于短路操作,可以应用于ECMAScript中的任何值,在有一个操作数不是布尔值的情况下,这个操作符都会不一定返回一个布尔值,遵循的规则见《JavaScript高级程序设计》p46。
可以代替其它语言中的三目运算符?:,比如var myObject = preferredObject || backupObject;`
// var myObject = preferredObject ? preferredObject : backupObject;
4, 乘性操作符
- 乘法
- 除法
- 求模
5, 加性操作符
- 加法
- 减法
6, 关系操作符
7, 相等操作符
- 相等和不相等(==)(!=)
在转换不同的数据类型时,遵循的规则见《JavaScript高级程序设计》p51 - 全等和不全等(===)(!==)
在比较之前不转换操作数之外,全等和不全等操作符与相等和不相等操作符没有什么区别。
8, 条件操作符
- ?: