0
点赞
收藏
分享

微信扫一扫

|| && 的用法,不只是判断的作用

|| && 的用法,不只是判断的作用,还可以判断值是否为空的情况

我们平常使用的 ​​&&​​​ ​​||​​​ 一般只是用于判断 ​​true​​​ 或 ​​false​​,其它这两个运算符还有其它作用,它是有返回值的。

​&&​​​ 的返回值是:最后一个为 ​​ture​​​ 的值
​​​||​​​ 的返回值是:第一个为 ​​true​​ 的值

一、功能说明

1. &&

  1. 两边条件都为​​true​​​ 时,结果才为​​true​​;
  2. 如果有一个为​​false​​​,结果就为​​false​​;
  3. 当第一个条件为​​false​​ 时,就不再判断后面的条件

2. ||

  1. 只要有一个条件为​​true​​​ 时,结果就为​​true​​;
  2. 当两个条件都为​​false​​​ 时,结果才为​​false​​;
  3. 当一个条件为​​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​​ 就返回后面的值

其实 ​​ES6 2020​​​ 已经推出了类似 ​​Swift​​ 的用法,但好像目前支持的很少。

具体可以看这里:
​​​ https://es6.ruanyifeng.com/#docs/object#Null-%E5%88%A4%E6%96%AD%E8%BF%90%E7%AE%97%E7%AC%A6​​

let str = value ?? 'second';
// 相当于
let str = value ? value : 'second'

之前一直想不出 ​​js​​​ 中如何能实现这样的效果,现在可以了。直接使用 ​​||​​​ 即可。因为它的作用是返回第一个为 ​​true​​​ 的值,如果 ​​value​​​ 有值并且不为 ​​0​​​ ​​undefined​​​ ​​null​​​ 等,就返回 ​​value​​,否则返回后面的值。

value ? value : 'second'
// 返回值为 "second"

value || 'second'
// 返回值为 "second"

在很多使用场景中都会用到这个


举报

相关推荐

0 条评论