前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js 中的逻辑赋值运算

js 中的逻辑赋值运算

作者头像
蓓蕾心晴
发布2023-07-24 16:38:24
1780
发布2023-07-24 16:38:24
举报
文章被收录于专栏:前端小叙前端小叙

逻辑运算符

在 js 中,我们都知道有逻辑运算符,比如 逻辑与 ( && )、逻辑或( || )、逻辑非( ! )、空值合并运算符(??)

逻辑与 ( && )

当且仅当所有操作数为 true 时,一组布尔操作数的逻辑与(&&,逻辑连接)运算结果为 true,否则为 false

一般来说,当从左到右求值时,该操作符返回第一个假值操作数的值;如果它们都是真值,则返回最后一个操作数的值。

代码语言:javascript
复制
const a = 3;
const b = -2;

console.log(a > 0 && b > 0);
// Expected output: false

逻辑或( || )

对于一组操作数的逻辑或(||,逻辑析取)运算符,当且仅当其一个或多个操作数为真,其运算结果为真。它通常与布尔(逻辑)值一起使用。当它是布尔值时,返回一个布尔值。然而,|| 运算符实际上是返回一个指定的操作数的值,所以如果这个运算符被用于非布尔值,它将返回一个非布尔值。

代码语言:javascript
复制
const a = 3;
const b = -2;

console.log(a > 0 || b > 0);
// Expected output: true

空值合并运算符(??)

空值合并运算符(??)是一个逻辑运算符,当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数。与逻辑或运算符(||不同,逻辑或运算符会在左侧操作数为假值时返回右侧操作数。也就是说,如果使用 || 来为某些变量设置默认值,可能会遇到意料之外的行为。比如为假值(例如,'' 或 0)时。

逻辑赋值

就是在逻辑运算符的情况下+赋值比如  a&&=2,就是  a=a&&2

逻辑空赋值(??=)

逻辑空赋值运算符(x ??= y)仅在 x 是空值null 或 undefined)时对其赋值。

代码语言:javascript
复制
const a = { duration: 50 };

a.duration ??= 10;
console.log(a.duration);
// Expected output: 50
// =>
// a.duration = a.duration ?? 10

a.speed ??= 25;
console.log(a.speed);
// Expected output: 25
// =>
// a.speed = a.speed ?? 25

逻辑与赋值(&&=)

逻辑与赋值(x &&= y)运算仅在 x 为值时为其赋值。

代码语言:javascript
复制
let a = 1;
let b = 0;

a &&= 2;
console.log(a);
// Expected output: 2
// =>
// a = a && 2;

b &&= 2;
console.log(b);
// Expected output: 0
// =>
// b = b && 2
// 按照逻辑与规则进行赋值运算

注意:逻辑运算符除了逻辑非是(  ! ) ,其他都是两个连续相等的运算符表示,单个运算符表示的都是按位运算符,不要搞混。

如:按位与( & )、按位或( | )、按位非( ~ )、按位异或( ^ )、按位与赋值( &= )、按位或赋值( |= )、按位异或赋值( ^=)

具体参考 MDN 文档

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 逻辑运算符
    • 逻辑与 ( && )
      • 逻辑或( || )
        • 空值合并运算符(??)
        • 逻辑赋值
          • 逻辑空赋值(??=)
            • 逻辑与赋值(&&=)
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档