操作符
1. 算术操作符
+ :加
- :减
* :乘
/ :除
%:取余
在使用以上操作符的时候,浏览器会尝试将本来不是number的数据进行转换。
递增和递减
1. 递增
++a和a++
区别:
++a: 先是对a的值进行修改;再执行相关函数。也就是说,
执行时的a,已经不是a的原始值。
a++: 先是执行相关函数,再对a值进行修改。
也就是说,执行时的a,是a的原始值。
2. 递减
- - a和a - -
区别:
--a: 先是对a的值进行修改;再执行相关函数。也就是说,
执行时的a,已经不是a的原始值。
a--: 先是执行相关函数,再对a值进行修改。
也就是说,执行时的a,是a的原始值。
2. 赋值操作符
简单赋值:=
复合赋值:+=、-=、*=、/=、%=
3. 比较操作符
<、>、>=、<=、
== 值相等
!= 值不等
=== 值和类型都相等
!== 值和类型不全相等
返回值: boolean类型
4. 三元操作符
语法:
条件?执行代码1: 执行代码2
说明:
可代替简单的if语句
如果条件成立执行代码1,否则执行代码2
5. 逻辑操作符
&& :与 (所有条件都必须成立)
如果有一个操作数不是布尔值,遵循以下原则:
如果第一个操作数隐式转换后为true,则返回最后一个操作数;
如果第一个操作数隐式转换后为false,则返回第一个操作数;
如果有一个操作数是null / NaN / undefined,则返回null / NaN / undefined。
|| :或 (只要有一个条件成立)
如果有一个操作数不是布尔值,遵循以下原则:
如果第一个操作数隐式转换后为true,则返回第一个操作数;
如果第一个操作数隐式转换后为false,则看后面的操作数,直到为true的,则返回该操作数;
如果前面的操作数都是false,并且最后一个操作数是null / NaN / undefined,则返回null / NaN / undefined。
!:非 (只要有一个条件成立)
无论如何都会返回布尔值。
使用 !!
第一个 ! 基于无论如何都会返回布尔值操作;
第二个 ! 对以上的布尔值取反。