算术运算符&算术运算式
+:如果加号两边没有string类型的数据,那么就代表把两个值相加算和;
如果+两边只要有一个string类型的数据,那么就代表把这个两个值连接起来组成一个新的字符串
boolean类型中的true和false,其实本质上也是数字,true为1,false为0
以下运算符:哪怕左右两个有一个字符串,也会先尝试把字符串内容转换成number类型,然后再做运算,如果内容不能转成数字,那么得到的结果是NaN(代表不是数字的意思) 也就是说只有+特殊,其他符号都是跟数学中的运算是一样的
-:两个数相减算差
*:两个数相乘算积
/:两个数相除算商
%:求余数,两个数相除,除不尽的余数就是结果 10 % 3 = 1
Infinity:代表无穷大,把0作为除数就会得到这个结果
由算术运算符连接起来的式子就叫算术运算式
注意:
取余的结果正负性只跟左边的操作数有关,左边的为负数,那么结果就是负数,左边是正,那么结果就是正数;
先算乘除,再算加减,有括号的先算括号里面的,如果都是同级就从左往右依次运算
复合运算符
如果想让某个变量在自己的值得基础上再+,再-,再*,再/,再%都可以用复合运算符
+=:
-=:
*=:
/=:
%=
自增和自减
++:自增,让自己的值+1
--:自减,让自己的值-1
前缀++(--)与后缀++(--)的区别:
前缀:先自增或自减,再用自增或自减后的结果参与运算
后缀:先用原来的值参与运算,再自增或自减
不管在前还是在后,都会自增或自减
typeof的运算符,是计算出右边数据是什么类型
写法1:typeof 数据
写法2:typeof(数据)
typeof得到的结果也是string类型
console.log(typeof (typeof true));//输出的是string类型
math对象:
Math.pow(底数,幂);算一个数的n次方;
Math.round(数字):的到一个数字的四舍五入的整数形式;
Mah.ceil:天花板取整,向上取整,只要有小数点,就让整数进1;结果比原来的数字大
如果是负数,就相当于直接取整数部分;
Math.floor:地板取整,只要有小数点,就直接取整数部分,得到的数比原来的小
Math.random:随机生成0-1之间的任意数字,包括0,不包括1;
Math.abs:取这个数的绝对值;
Math.max:最大值;
Math.min:最小值;
Math.PI:得到圆周率;
Math.sqrt:算某个数字的平方根;
关于精度问题,可以先*100,然后再/100;
关系运算符
>: 判断左边是否大于
<: 判断左边是否小于右边
>=: 判断左边是否大于或等于右边
<=: 判断左边是否小于或等于右边
==: 判断左边是否等于右边的值 ,只是判断值是否相等,不用管类型
!=: 判断左边是不等于右边
用的极少
===:判断左边是否全等于右边,既要值相等也要类型相等
!==:判断左边是否不全等右边,看值和类型是否不等,只要有一个不等,结果就是true
以上这些运算符是用来判断左右两边关系的,那么就肯定会有一个结果
结果要么是对(真),要么是错(假),所以他们得到结果是boolean类型的
逻辑运算符
&&:逻辑与;用&&连接起来的式子,两边都要为true,其结果才为true,只要有一个不满足,其结果都为false;
||:逻辑或;只要有一个满足true,结果就为true,都不满足才为false;
!:逻辑非.取反;
console.log(!10);//false 因为在数字里,非0为真,只有零是假的,
console.log(!-10);//false
逻辑运算符短路;
&&中的短路:如果左边为false,没必要进行右边的判断,其结果就为左边的式子;(没有短路的话就是右边的式子)
||中的短路:如果左边为true,没必要进行右边的判断,其结果就是左边的式子