JavaScript - 逻辑运算符、断路运算符的应用

文章详细解释了JavaScript中的逻辑运算符&&和||的工作原理,以及如何使用它们进行条件判断。还介绍了!!操作符用于转换为布尔值,以及ES11引入的新运算符??,该运算符在左侧值为null或undefined时返回右侧值。
摘要由CSDN通过智能技术生成

1、逻辑运算符

  1. &&

    例如 a&&b

    解释1:只要&&前面是false 都会反回这个值 。

    解释2:只要&&前面是true,无论后面是true还是false都将反回&&后面的值。

  2. ||

    例如 a||b

    解释1:只要||前面为false,无论||后面是true还是false,都将反回||后面的值。

    解释2:只要||前面为true,无论||后面是true还是false,都将反回||前面的值。


let flag = true;
if(flag){
  console.log(1);
}
//等于
console.log(flag&&1);// 前面的值为true(存在)则返回后面的值 或者执行函数
let flag = false;
if(!flag){
  console.log(1);
}
//等于
console.log(flag||1);// 前面的值为false(不存在)则返回后面的值 或者执行函数
//进阶用法
let a =5;
let b;
if(a>10){
  b=10;
}else{
  b=5;
}
console.log(b);
//等价于
let a = 5;
let b;
b = a>10&&10||5

说下逻辑运算符 !!

首先在复习下 js 中布尔值为false的六种情况
1、undefined(未定义,找不到值时出现)
2、null(代表空值)
3、false(布尔值的false,字符串"false"布尔值为true)
4、0(数字0,字符串"0"布尔值为true)
5、NaN(无法计算结果时出现,表示"非数值";但是typeof NaN===“number”)
6、“”(双引号)或’'(单引号) (空字符串,中间有空格时也是true)
注意空数组空对象,负值转的布尔值时都为true

“!!“操作符是判断变量是否真正为真(非null/undefined/false?0/NaN/””、''等)的很简明的实现方式,省去了大量的&&运算,如果用&&来实现求真逻辑,代码表现如下:
if( obj!==null &&obj!==undefined && obj!==NaN && obj!=="" && obj!==false && obj!==0){
  // 
}
//用!!
if(!!obj){
  //
}

ES11 又新出了一个 ?? 操作符

当左侧是 null 或者 undefined 时候,返回后面的值

null || 1 // 1
undefined || 1 // 

有点像 || 运算符

他们两个的区别是
  1. 使用 ?? 时,只有One为 null 或者 undefined 时才会返回 two;
  2. 使用 || 时,One会先转化为布尔值判断,为true时返回One , false 返回Two
 // ??
  undefined ?? 2    // 2
  null ?? 2        // 2
  0 ?? 2            // 0
  "" ?? 2            // ""
  true ?? 2        // true
  false ?? 2        // false


 // ||
  undefined || 2    // 2
  null || 2        // 2
  0 || 2            // 2
  "" || 2            // 2
  true || 2        // true
  false || 2        // 2

后续补充!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值