JS语法__短路逻辑&&与||

151 阅读1分钟

&& 短路逻辑

A && B && C && D // 取第一个假值或 D,并不会取 true / false
A && B // 等价于
if(A){
  B
}else{}

一般用法:

A && B
fn && fn()

举例:

console && console.log && console.log('hello')

|| 短路逻辑

A || B || C || D // 取第一个真值或 D,并不会取 true / false
A || B // 等价于
if(!A){
  B
}else{}

一般用法:

A || B
A = A || B 

举例:

a = a || 100 // 等价于
if(a){
  a = a
}else{
  a = 100 //保底值
}

注意:五个falsy值都会令a为假

function add(n){
  n = n || 0 // n为''时,n为false
  return n+1
}
add('') // 结果为1

可以使用新语法

function add(n=0){ //如果n为null或undefined时,n=0
  return n+1 
}
add('') // 结果为'1'