我们平常使用的 &&
||
一般只是用于判断 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"
在很多使用场景中都会用到这个
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。