算数运算符 + - * %
不同类型的加减都会发生隐形转换
1,加法运算
(1)如果两个操作符都是数值,执行常规的加法计算
(2)如果两个操作数都是字符串,则将第二个操作数与第一个操作数拼接起来
(3)如果只有一个操作数是字符串,则将另一个操作数转换为字符串,然后再将两个字符串拼接起来
2,减法运算
(1)如果两个操作符都是数值,则执行常规的算术减法操作并返回结果;
(2)如果有一个操作数是字符串、布尔值、null 或undefined,则先在后台调用 Number()函数将其转换为数值,然后再根据前面的规则执行减法计算。如果转换的结果是NaN,则减法的结果就是NaN
3,乘法运算
(1)如果不是number型,后台会调用Number()函数变成数值
(2)如果有一个操作数是NaN,则结果是NaN;
一元运算符
自增,自减就是对变量本身进行加一或者减一操作,如果执行自增或自减操作时,有其他运算,如果自增自检在前则先进行自身运算
如果自增自检zai后,则先进行其他运算,然后再对本身进行加一或减一。
var box = '89'; box++; //90,数值字符串自动转换成数值
var box = 'ab'; box++; //NaN,字符串包含非数值转成NaN
var box = false; box++; //1,false 转成数值是0,累加就是1
var box = 2.3; box++; //3.3,直接加1
赋值运算符 就是把右边的值付给左边
的变量
比较运算符( >、>=、<、<=)结果是布尔类型,比较久是先转换为数值在比较
如果两个操作数都是字符串,则比较两个字符串对应的字符编码值。
“==”和“===”的区别: // “==”:如果等号左右两边的类型不一致,则先进性类型转换,然后再判断是否相等
// “===”:判断是否绝对相等(全等),如果等号两边类型不一致,则不再进行类型转换,直接返回false。
逻辑运算符
/逻辑与&&是用来找假值,只要在运算符两边找到一个假值就返回
/逻辑或||用来找真值,只要在运算符两边找到一个真值则返回这个真值