1,一元操作符 :var num =25 num = +num; num//25 一元操作符进行数据转换 像用的是Number转换 减号操作符则是 转换成负数;
2,按位非(~):var num = 25 ;var num1 = ~num; num//-26;本质是 数值的相反数减一;计算方式是 二进制 取反 最高为保持不变最高位是符号位 然后加1得到的结果
按位与(&)两个数值的二进制 进行按位与操作的到的结果
按位或(|)两个数值的二进制进行按位或的操作的得到的结果
按位异或(^)两个数值的二进制 的对应位上只有一个1才会返回1 如果对应为都是1或者是0则返回0
左移(<<) 最高一位代表符号位,以31位,向左移位 空白以0填充;最高一位表示符号位 左移不会影响符号位 右移相反
右移 向右移动 空白以0填充 最高一位代表符号位
无符号移动(>>>或<<<)以32位移动
3,逻辑与(&&)第一个数为对象的时候返回第二个参数 第二个为对象的时候 只有第一个为true的情况才可以返回对象,第一个数为null,undefined ,nan的时候则返回本身,其余的情况全部返回true或者false。
4,逻辑或(||)第一个数为对象则返回第一个,第一个数为false则返回第二个,如果两个都为对象则返回第一个,第一个为true的情况不会对第二个做计算,如果两个数都为null,undefined ,nan的时候则返回本身。
5,乘法操作:
6,除法操作:
如果操作数都是数值则进行除法计算
如果有一个是NaN则返回NaN;
如果不是数值 则调用Number进行转换;在按照上面的规则处理
0%0得到的是NAN
数值除以0则得到infinite;
7,求模
8,加法
如果有两个操作数是数值则进行正常的计算
如果有一个是字符串 则另一个进行字符串转换
如果有一个是对象 调用tostring方法进行转换
null和undefined 会调用string进行转换
9,减法操作符
10,关系操作符