操作符分类
2.逻辑操作符
3.赋值操作符
4.比较操作符
5.三元操作符
算术操作符
+ - * / %
递增与递减
比较操作符
>, >=, <,<=,==,===,!==,!===
==:相等只比较值是否相等
===:相等,比较值的同时比较数据类型是否相等
!=:不相等,比较值是否不相等
!==不相等比较值的同时比较数据类型是否不相等
返回值:boolean型
三元操作符
语法:
条件?执行代码1:执行代码2
说明:
可代替简单的if语句,
如果条件成立执行代码1,否则执行代码2
逻辑操作符
&&:与 (只要有一个条件不成立,返回false)——
说明: 在有一个操作数不是布尔值的情况 逻辑与操作就不一定返回值,此时它遵循下列操作
1.如果第一个操作数隐式类型转换后为true则返回第二个操作数
2.如果第一个操作数隐式类型转换后为false则返回第一个操作数
3.若果一个操作数都是NaN则返NaN
4.如果一个操作数是null则返回null
5.如果一个操作数都是undefined则返回undefined
||:或(只要有一个条件成立 返回true)
说明: 在有一个操作数不是布尔值的情况 逻辑与操作就不一定返回值,此时它遵循下列操作
1.如果第一个操作数隐式类型转换后为true则返回第一个操作数
2.如果第一个操作数隐式类型转换后为false则返回第二个操作数
3.若果两个操作数都是NaN则返NaN
4.如果两个操作数是null则返回null
5.如果两个操作数都是undefined则返回undefined
! : 非
说明:
1.无论操作数是什么数据类型,逻辑非都会返回一个布尔值
2.!!同时使用两个逻辑非操作符时:
第一个逻辑非操作符基于无论什么操作数返回一个布尔值
第二个逻辑非则对该布尔值求反
分类操作符
算术操作+、-、*、/、%(取余)一元操作 ++、--
逻辑运算 ! 、&& 、||
关系运算 <、>、<=、>=、!=、!==、==、===
赋值操作 =、复合赋值(+=、-=、*=、/=)
一、算术运算符(案例中 y=5)
运算符 描述 例子 结果
+ 加 x=y+27
- 减 x=y-25
* 乘 x=y*210
/ 除 x=y/22.5
% 取余 x=y%21
注意:
(1)“+”运算符还能用于把文本值或字符串连接起来,如果需要把两个或以上的字符串连接起来,可以用“+”运算符;抑或想把别的数据类型转化为字符串,也可以用“+”运算符把该数据类型跟字符串相加
(2)取余,由百分号(%)表示
二、一元操作符
(1)++/--变量,赋值(+1 或-1)后再运算例如:
输出结果是:
分析:
++/--在变量的前面,变量先自身+1 或-1,然后再进行运算;++x 值是 2,--y 值是 1,故相加后结果是 3
(2)变量++/--,运算后再赋值(+1 或-1)
例如:
输出结果是:
分析:
++/--在变量的后面,变量先进行运算,然后再赋值;(++x)+(y--)的运算中,++x 先赋值再运算,x 就是 2;y--先参与运算再赋值,故 y 是 2,所以(++x)+(y--)的值是 4,x 是 2,y 是 1
三、复合赋值运算
(1)复合赋值运算是由算术操作符实现的,是算术操作的缩写形式,如: var a=10;
a=a+10;
第二行代码由复合赋值运算来写的话就是: a+=10 ;
(2)主要的算术运算的复合赋值运算符如下: 加法:+=
减法:-= 乘法:*= 除法:/= 取余:%=
四、逻辑运算符
X Y X&&YX||Y !X
false false false false true
false true flase true true
true false flase true flase
true true true true flase
关于“短路逻辑”的问题
(1)在&&运算符中
?如果第一个运算公式为真,那么再去看后面的运算公式是否为真;
?如果第一个运算公示为真,那么后面的运算公示就没必要去看,这个逻辑肯定为假
(2)在||运算中
?如果第一个运算公式为真,那么后面的运算公示没必要去看,这个逻辑运算肯定为真
?如果第一个运算公示为假,那么再去看后面的运算公式是否为真
例如:
输出结果是:
!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>逻辑运算符</title>
</head>
<body>
<script type="text/javascript"> var x=1,y=2;
var result=++x<0||y++>0; console.log(result);
</script>
</body>
</html>