js逻辑或(||)和且(&&)

重点: JavaScript 中的逻辑运算符按照布尔逻辑进行计算,并且返回值是操作数本身


||

||:逻辑或,只要有一个表达式为真(truthy),整个表达式就为真

逻辑或 (||) 的行为:

||运算符可以用来连接两个或多个表达式。如果第一个表达式为真,那么会直接返回第一个表达式的值, 不再执行第二个表达式。如果第一个表达式为假,那么会返回第二个表达式的值

eg 1:用于条件判断

a = 1
b = ''
if (a || b) {
  console.log('a || b')
}
// 打印出 a || b

如上,a转化为布尔值为true,不管b转化后是否为true,结果都是返回a的值,而a的值1转化后为true,所以可以打印出结果

a = 1
b = ''
if (a == 2 || b == 1) {
  console.log('a || b')
}

如上,a == 2 为 false,b == 1 为 false, false || false 的结果,返回后面的false,所以不走if,打印不出结果

eg 2:提供默认值

a = ''
b = 0
c = a || b
console.log(c) // 0

如上,a的值为空(转换后为false),则返回b的值

eg 3: 简化条件表达式

let a  = ""
a = a ? a: 0;
简化后:
let a  = ""
a = a || 0

如上,如果a转换为布尔值后为true,则a赋值等于a,如果a转换为布尔值为false,则将a赋值为0。 它既是简化三元表达式,也是为a提供默认值。


&&

&&:逻辑与,所有表达式都为真(truthy)时,整个表达式才为真

逻辑与 (&&) 的行为:

&&运算符可以用来连接两个或多个表达式。如果第一个表达式为真,那么会返回第二个表达式的值;如果第一个表达式为假那么会直接返回第一个表达式的值,不再执行第二个表达式。

eg 1:用于条件判断

a = 1
b = 2
if (a && b) {
  console.log('a && b')
}
// 打印出 a && b

如上,a转化为布尔值为true,b转化为布尔值后也为true,a && b 返回第二个表达式的值true if(true) 所以可以打印出结果

a = 1
b = ''
if (a == 2 && b == 1) {
  console.log('a && b')
}

如上,a == 2 为 false,b == 1 为 false, false && false 的结果,返回前面的false,所以不走if,打印不出结果

eg 2:提供默认值

a = ''
b = 0
c = a && b
console.log(c) // ‘’

如上,a的值为空(转换后为false),则返回a的值

eg 3: 简化条件表达式

funciton b () {
} 

let a= 2;
let c= a ? b() : '';
// 简化后:
let a= 2;
let c= a && b();

如上,如果a转化后为true,则执行b函数,如果a为false,则不执行,在日常开发中很常用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值