【一元操作符】
1. 递增和递减。对任何类型的值都适用:先像Number()一样处理值,再进行递增或递减。
2. 一元加操作符。对非数值应用一元加操作符时,会像Number()一样处理值。所以,一元加操作符可以用于数值转换。
3.一元减操作符。对非数值应用一元减操作符时,会先像Number()一样处理值,然后转为负数。
【位操作符】
1. 按位非~。返回值的相反数减一(其实就是返回数值的反码,符号位也求反)。
2.按位与&。补码间的操作(注意,正数的补码是它本身)。
3.按位或 | 。补码间的操作(注意,正数的补码是它本身)。
4.按位异或(XOR) ^。补码间的操作(注意,正数的补码是它本身)。
5.左移<<。左移以0填充空位,不影响符号位。补码间的操作(注意,正数的补码是它本身)。
6.有符号右移>>。有符号右移以符号位填充,保留符号位。补码间的操作(注意,正数的补码是它本身)。
7.无符号右移>>>。无符号右移以0填充空位。补码间的操作(注意,正数的补码是它本身)。
【布尔操作符】
1. 逻辑非 !。首先对值进行像Boolean()函数一样的操作,然后再求反。对一个值用两个逻辑非就相当于用了Boolean()函数。
2. 逻辑与 &&。复杂,用的时候再看吧。短路操作符。
3. 逻辑或 || 。复杂,用的时候再看吧。短路操作符。
【乘性操作符】
1. 乘法 *。
2. 除法 /。
3. 求模(余数) %。
【加性操作符】
1. 加法 +。
2. 减法-。
【关系操作符】
> < =。
只要有数值,就是进行数值比较(非数值转换成数值,类似Number()方法转换)。
【相等操作符】
相等和不相等是“先转换再比较”,全等和不全等是“只比较不转换”。
相等==和不相等!=的比较,除了null和undefined,采用Number()一样的方式转换,然后比较。对于null和undefined,遵循以下规则:null和undefined相等;NaN与任何值都不相等(包括NaN本身)。如果两个操作数都是对象,则比较是不是同一个对象(即比较是不是指向同一个对象)。
全等===和不全等!==,不转换的比较,类型不同时不全等。
【条件操作符】
__?__:__
【赋值操作符】
=, *=, /=, %=, +=, -=, <<=, >>=, >>>=
【逗号操作符】
返回表达式最后一项,如var num=(3,4,5,6,7,14);//num为14。