咱们平时应用的 &&
||
个别只是用于判断 true
或 false
,其它这两个运算符还有其它作用,它是有返回值的。
&&
的返回值是:最初一个为 ture
的值||
的返回值是:第一个为 true
的值
一、性能阐明
1. &&
- 两边条件都为
true
时,后果才为true
; - 如果有一个为
false
,后果就为false
; - 当第一个条件为
false
时,就不再判断前面的条件
2. ||
- 只有有一个条件为
true
时,后果就为true
; - 当两个条件都为
false
时,后果才为false
; - 当一个条件为
true
时,前面的条件不再判断
二、应用场景
在很多返回值管制方面能够应用这两个符号实现很实用的成果
1. 封装 ajax 申请
封装 ajax
申请中,办法作为参数时,能够传递有参数或无参数的办法,如果是有参数的,就在 success
中执行带参数的办法,如果没有就执行无参数的。
function getData (url, queryData, onSuccess, onError, complete) { $.ajax({ url: url, method: 'GET', dataType: 'json', data: queryData, beforeSend: function (request) {}, success: function (res) { onSuccess && onSuccess(res); } })}getData('/user/register', { name: 'Kyle', age: 30}, res => { // 这里是带参数的胜利返回办法 // 在下面的办法中就会执行 onSuccess(res) 这个入口})
2. 简化 value ? value : 'default value'
在 Swift 中有个很实用的运算符 ??
它的作用是:
如果后面的值不为 nil
(就是空的意思) 就返回后面的值,如果为 nil
就返回前面的值
let str = value ?? 'second';// 相当于let str = value ? value : 'second'
之前始终想不出 js
中如何能实现这样的成果,当初能够了。间接应用 ||
即可。因为它的作用是返回第一个为 true
的值,如果 value
有值并且不为 0
undefined
null
等,就返回 value
,否则返回前面的值。
value ? value : 'second'// 返回值为 "second"value || 'second'// 返回值为 "second"
在很多应用场景中都会用到这个