JS - 逻辑与、非

&&逻辑与

对于布尔值的情况:必须都为ture才返回true,否则返回false

true && true // true
true && false // false

对于不是布尔值的情况:第一个操作数等于0、null、undefined、false、空字符串时,返回它自身(不执行后续的操作数),否则返回第二个操作数

0 && {}         // 0
null && {}      // null 
undefined && {} // undefined 
false && {}     // false 
'' && {}        // ''
1 && 1           // 1 
null && {a: 1}   // {a: 1}
undefined && [1] // [1]
false && {a: 1}  // {a: 1}
'1' && '2'       // '2'

使用场景:当对象存在某个值时,进行参数传递

var options = {}
var params = (options.data && options.data.params) || ''

// 等价于
var params
if (!options.data) {
  params = options.data.params
}
else {
  params = ''
}

axios请求拦截器给headers添加token

axios.interceptors.request.use(
  config => {
    const token = store.state.token
    token && (config.headers.Authorization = token)
    return config
  },
  error => {
    return Promise.error(error)
  }
)

||逻辑或

对于布尔值的情况:其中一个操作数是true,则返回true;两个操作数都是false,则返回false

false || true  // true
false || false // false

对于不是布尔值的情况:第一个操作数不等于0、null、undefined、false、空字符串时,返回它自身,否则返回第二个操作数

0 || {}         // {}
null || {}      // {} 
undefined || {} // {} 
false || {}     // {} 
'' || {}        // {}
1 || 2        // 1 
{a: 1} || {}  // {a: 1}
[1] || []     // [1]
'1' || ''     // '1'

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值