分为:算术运算符、递增递减运算符、比较运算符(关系运算符)、逻辑运算符、赋值运算符。
1.算术运算符
浮点数值最高计算精度17位小数,但是在计算精度上远远不如整数。有的浮点计算结果会和预想的不一样,所以尽量避免用浮点数进行运算和比较。如下面浮点计算和想的不一样:
console.log(1 + 1);//2
console.log(0.2 + 0.2);//0.4
console.log(0.1 + 0.2);//0.30000000000000004
console.log(0.07 * 100);//7.000000000000001
2.递增递减运算符
++p:先自加,后返回值
++p:先返回值,再自加 。二者单独使用时结果是一样的
var p = 5;
console.log(p++ + 10);//15
console.log(p);//6
var m = 1;
console.log(++m + 10);//12
console.log(m);//2
var h = 10;
var h1 = h++ + ++h;//10+12
console.log(h1)//22
3.比较运算符(关系运算符)
>,<,==(会进行默认转换数据类型),>=,<=,!=,(全等和不全等)===,!=== ,结果是返回true或false。
全等指的是数据以及数据的类型要完全一致。
console.log('18' == 18);//默认将字符转成数值
console.log('18' === 18);
4.逻辑运算符
&&,||,!。在判断的时候会有短路运算,前为真和前为假两种情况,可直接判断或者返回后者表达式。
console.log(123 && 456);//456
console.log(0 && 123);//0
console.log('' && 11 & 33);//0
console.log(123 || 456);//123
console.log(0 || 123);//123
出现逻辑中断后面的num++就不再执行了:
var a1 = 0;
console.log(123 || num++);//123,出现逻辑中断后面的num++就不再执行了
console.log(a1);//0
5.赋值运算符:=,+=,-=,*=,/=,%=
运算符的优先级 :