js中的短路运算符 【 || , && 】

在JS中经常会使用到短路运算符,主要是逻辑与(&&) 和 逻辑或(||)、

注意:

  • 除0和NaN之外的所有数字,转换为布尔型都为true。NaN: (非数值)

  • 除 "" 之外的所有字符,转换为布尔型都为true

  • null和undefined转换为布尔型为false

1. 逻辑与&&的运算

(1)如果两边都为数字,或字符串数字,则返回右边的

(2)如果左边的值为 【true 】,不管右边的值是(真)是(假)都返回右边的

(3)如果左边的值为 【false 】,则都返回左边的,那么返回左边的值,但是当逻辑与的左边为 null/NaN/undefined ,结果就会得到null/NaN/undefined。

let c = 7 && 6;
console.log(c)   //返回 6


let a = true && 6;
console.log(a)  //若左边为真,返回右边的, 也返回 6
let a = 6 && true;
console.log(a) // true


let b = false && 6;
console.log(b)   //若左边为假,返回左边的, 返回 false
let bq1 = 6 && false;
console.log(bq1)    //返回 false

// 没有空格
let dde = !"" && 5
console.log("dde:"+dde);  //5
let daee = "" && 5
console.log("ddee:"+daee);   //返回一个空

// 加了空格
let dde = !" " && 5       
console.log("dde:"+dde);  // 返回 false
let daee = " " && 5
console.log("ddee:"+daee);   //返回 5

2. 逻辑或||的运算

(1)如果两边都为数字,或字符串数字,则返回左边的

(2)如果左边的值布尔转换后为true,那么返回左边的值,如果两个操作数都是是null (NaN/undefined),返回null(NaN/undefined)

(3)如果左边的值布尔转换后为false,那么返回右边的值(不管右边的值是真还是假)。

let aac = 10 || 111;
console.log(aac)    //返回左边的 10

let aa = true || 7;
console.log(aa)      //返回左边的 true
let aaa = 7 || true;
console.log(aaa)     //返回左边的 7

let aaaa = false || 66
console.log(aaaa);   //返回右边的 66
let aaab = 66 || false
console.log(aaab);   //返回左边的 66


let bb = false || 6;
console.log(bb)       //返回右边的 6

console.log(!"")   //返回 true

let dd = !"" || 5
console.log("dd:"+dd);  //true
let da = "" || 5  
console.log("da:"+da);  // 5
//有空格
let dda = !" " || 5
console.log("dda:"+dda);  // 5
let dae = " " || 5
console.log("dae:"+dae);   //空格

3.使用场景

【注意:如果vue的代码风格都是不加' ; ',下面多个条件的时候要用小括号开头(),可能会报错】

例:

//判断this里是否有这个的值,存在为true,执行后面的
let { phone } = this;
phone && (await this.$store.dispatch("getCode", phone));



let { phone, code, password, password1 } = this;
(phone&&code&&password&&password1) && this.$store.dispatch('userRegister',{phone, code, password, password1})

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值