JS运算符
1- 算术运算符
加 +
如果 + 号两边有一个是字符串,那么就是字符串连接符
console.log('10'+20); //'1020'
减 - 乘 * 除 / 取模 %(取余)
算术运算符两边如果不是数字,会隐式转换成数字然后运算(+除外)
自增 ++
//++写在后面,先赋值再运算
//++写在前面,先运算再赋值
自减 --
//- -写在后面,先赋值再运算
//- -写在前面,先运算再赋值
2- 比较运算符
比较操作符:>,<,>=,<=,==,===,!=,!==
==:相等,只比较值是否相等
===:相等,比较值的同时比较数据类型是否相等
!=:不相等,比较值是否不相等
!===,不相等,比较值的同时比较数据类型是否不相等
返回值:boolean型
console.log(a>b);//true
var x=10,y="10",z=x==y;
console.log(z);//值是否相等,true
var z=x===y;
console.log(z);//全等,flase
console.log(null==undefined); //true
console.log(null===undefined); //flase
3- 赋值运算符
简单赋值:=
复核赋值:+=,-=,*=,/=,%=
var a=10,b=20;
a+=5;//等价 a=a+5
b%=4;//等价 b=b%4
var str="hello ";
str=str+"world";//等价 str+="world";
console.log(str);//hello world
4- 逻辑运算符 逻辑操作符:&& 与,|| 或 ,! 非
&& 与:
在有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回值,遵循以下规则:
1、如果第一个操作数隐式类型转换后为true,则返回第二个操作数。
2、如果第一个操作数隐式类型转换后为flase,则返回第一个操作数。
3、与操作中,如果有一个操作数是 null 、NaN、undefined 返回的打印结果null 、NaN、undefined
逻辑或||
1、有一个操作数不是布尔值时候,如果第一个操作数隐式类型转换后为true,则返回第一个操作数。
2、如果第一个操作数隐式类型转换后为false,则返回第二个操作数,第二个为false继续往下类推。
&&和||: 返回决定表达式最终结果那一边的值
!非
3、两个数都为null/NaN/undefined,则返回null/...
逻辑非:无论操作数为任何类型,都会返回布尔值
!!同时使用两个逻辑非:第一个会无论基于何值都返回布尔值,第二个逻辑非再次求反
5- 三目运算符
语法:条件?执行代码1:执行代码2
说明:可代替简单的if语句,
如果条件成立,执行代码1,否则执行代码2
var soce=85;
var result=(soce>=60)?"及格":"不及格"
console.log(result);
不同数据类型比较的规律
- ① : 字符串和数字比较 : 字符串转数字,然后比较
- ② : 字符串和布尔值 : 字符串和布尔值都转数字,比较
- ③ : 数字和布尔比较 : 布尔转数字再比较
- ④ : NaN和任何的值比较都不相等,包括自己
- ⑤ : 字符串和数组 : 数组转字符串,再比较
- ⑥ : 字符串和对象 : 对象转字符串,再比较
- ⑦ : null和undefined比较相等,各自和其他数据类型的值比较都不相等
- ⑧ : 引用数据类型的值相比较永不相等