运算符

@Operator
思维导图

赋值运算符 Assignment

. 把运算符右边的值赋给左边的变量
赋值运算符 Assignment
item desc
= 赋值
+= 数字的加等
-= 数字的减等
*= 数字的乘等
/= 数字的除等
%= 数字的取余等

算术运算符 Arithmetic

算术运算符 Arithmetic
item desc
+ 数字的加法
字符串的连接
- 数字的减法
* 数字的乘法
/ 数字的除法
% 数字取余/;运算符后面的数字是模
++ 自增
-- 自减
console.log(12 + 30);//32
console.log(12 + 'HK');//12HK
console.log("CN" + 'HK');//CNHK
console.log(12 - 30);//-18
console.log(12 * 30);//360
console.log(12 / 30);//0.4
console.log(0 / 0);//NaN
console.log(12 / 0);//Infinity
console.log(-12 / 0);//-Infinity
console.log(12 % 30);//12
console.log(-12 % 30);//-12

关系运算符 Relational

关系运算符 Relational
item desc
< 小于
> 大于
小于等于
大于等于
== 等于
!= 不等于
=== 严格等于
!== 严格不等于
NaN == NaN//false
null == null//true
==、===、!= 和 !== 也称等于运算符 Equality

逻辑运算符 Logical

逻辑运算符 Logical
item desc
&&
逻辑与
也可以写作 AND
求值;用做判断时,根据值决定是真还是假
两个值的情况:先将运算符左边的表达式转化为 Boolean,如果为真,就返回右边的值;如果为假就返回左边的值,又称短路,碰到假就停止
多个值的情况:如果左边为真,就继续往后看;如果还为真,就再继续;如果为假,就停止
undefined、null、NaN、""、''、0、false 转化为 Boolean 后,都为 false
运算符两侧的表达式可以是任何类型,如:根据某个条件,指向相应的动作
||
逻辑或
也可以写作 OR
求值;判断时,根据值决定是真还是假
执行过程和逻辑与相反。碰到真就返回;因为任何类型和真或都为真,也称断路
! 逻辑非
res = 1 && 2;//2
res = 0 && 2;//0
res = 1 && 2 && 0 && 12 && 3;//0
res = 0 && 2 && 12 && 23;//0
. 限制或指定某个操作
1 && console.log('hi');//执行打印输出
0 && fn();//不执行函数
res = 1 || 2;//1
res = 0 || 2;//2
res = 1 || 2 || 0 || 12 || 3;//1
res = 0 || 2 || 12 || 23;//2
. 事件对象的兼容处理。如果有e直接使用;否则使用后面的window.e[IE浏览器的事件对象。随着IE的停服,已经不需要做兼容处理了]
div.addEventListener('click', (e) => {
  let ev = e || window.e;
})
!123//false
!!123//true
!!NaN//false

instanceof

console.log(12 instanceof Number);//false
console.log('hi' instanceof String);//false
console.log(true instanceof Boolean);//false
// console.log(null instanceof Null);//warning
// console.log(undefined instanceof Undefined);//warning
console.log(fn instanceof Function);//true
console.log({ name: 'hkc' } instanceof Object);//true
console.log([1, 2] instanceof Array);//true

in

其它 Other

类型运算符 typeof

let fn = num => num * 2;
console.log(typeof 12);//number
console.log(typeof 'hi');//string
console.log(typeof true);//boolean
console.log(typeof null);//object;空对象指针
console.log(typeof undefined);//undefined
console.log(typeof fn);//function
console.log(typeof { name: 'hkc' });//object
console.log(typeof [1, 2]);//object

条件运算符 ?:

12 > 18 ? 'yes' : 'no'//no
12 < 18 ? 'yes' : 'no'//yes

扩展运算符 ...

let arr = [1, 2, 3, 4, 5]
let arr2 = [...arr]