一、算数运算符
number运算
9/0=infinity
-9/0=-infinity
余数 -1%7 相当于6%7 但JS运算结果是 -1
指数 x ** 3 三次方
自增自减:a++的值是a加之前的值;++a的值是a加之后的值(a在前值为前,a在后值为后)
求值运算符 +
负数运算符 -
string运算(只支持加号)
连接运算'123'+'456'
JS会先把数字变成字符串
由于字符串不支持减号,JS会自动将字符串变成数字
二、比较运算符
三、布尔运算符
四、二进制运算符
只对二进制数有效
二进制位运算符用于直接对二进制位进行计算,一共有7个。
- 二进制或运算符:符号为
|
,表示若两个二进制位都为0
,则结果为0
,否则为1
。 - 二进制与运算符:符号为
&
,表示若两个二进制位都为1,则结果为1,否则为0。 - 二进制否运算符:符号为
~
,表示对一个二进制位取反。 - 异或运算符:符号为
^
,表示若两个二进制位不相同,则结果为1,否则为0。
左移右移
左移运算符(<<
)表示将一个数的二进制值向左移动指定的位数,尾部补0
,即乘以2
的指定次方。向左移动的时候,最高位的符号位是一起移动的。
右移运算符(>>
)表示将一个数的二进制值向右移动指定的位数。如果是正数,头部全部补0
;如果是负数,头部全部补1
。右移运算符基本上相当于除以2
的指定次方(最高位即符号位参与移动)。
头部补零的右移运算符(>>>
)与右移运算符(>>
)只有一个差别,就是一个数的二进制形式向右移动时,头部一律补零,而不考虑符号位。所以,该运算总是得到正值。对于正数,该运算的结果与右移运算符(>>
)完全一致,区别主要在于负数。
看最后一位数是1还是0来判断奇数偶数
位运算会消除小数部分
新的语法
五、其他运算符
点运算符
创建,封装一个对象,删掉这个对象
void 目的得到个undefined
逗号运算符