js中|、&、!、?等运算符区分

389 阅读1分钟

javascript中常用运算符号

1、可选链?.

ES6中可选链是一种访问嵌套对象属性的安全的方式。即使中间的属性不存在,也不会出现错误。

let user = {}; // 一个没有 "address" 属性的 user 对象

alert(user.address.street); // Error!

如上所示,这就是为什么可选链?.被加入到了JavaScript这门编程语言中。?. 检查左边部分是否为 null/undefined,如果不是则继续运算。但我们应该谨慎地使用 ?.

可选链 ?. 语法有三种形式:

  1. obj?.prop —— 如果 obj 存在则返回 obj.prop,否则返回 undefined
  2. obj?.[prop] —— 如果 obj 存在则返回 obj[prop],否则返回 undefined
  3. obj.method?.() —— 如果 obj.method 存在则调用 obj.method(),否则返回 undefined

2、||、|

  1. 逻辑运算符|| 当左侧为假值(null、undefined、''、0、false)时返回右侧;常作或判断。容易与??混淆。
  2. 位运算符|两个位只要有一个为1,那么结果都为1。否则就为0。

3、&&、&

  1. 逻辑或短路运算符&& 当左侧为假值直接短路返回false,反之继续往右。常作且判断。
  2. 位运算符&

4、??、?

  1. ??当左侧为null或undefined时返回右侧。
  2. ?用于可选链或三目运算true?1:0

5、!!、!

  1. !!是将表达式强制转化为bool值的运算,运算结果为true或false,表达式是什么值,结果就是对应的bool值,不再取非.
  2. !是逻辑取反,非的意思,可以与任何变量进行逻辑与将其转化为布尔值。

6、===、==、!=、!==