ES12 新增的逻辑赋值操作符(&&=, ||= 和??=)详解

随着 ES12 的发布,JavaScript 语言又新增了三个逻辑赋值操作符(logical assignment operators)。它们分别是 &&=||=??=,相信很多前端工程师已经开始使用它们了。那么,这三个操作符都有什么作用呢?又该如何使用它们呢?本文将为大家详细讲解。

1. 逻辑赋值操作符简介

逻辑赋值操作符是一种新的赋值操作符,它可以将逻辑运算符和赋值运算符结合起来,实现一次性地对某个变量进行逻辑运算和赋值操作,这样可以比较方便地写出简洁的代码,并且可以提高代码的可读性和可维护性。

2. &&= 操作符

&&= 操作符表示“与运算赋值”,它的作用是将左侧的值和右侧的值进行逻辑与运算,并将运算结果赋值给左侧的变量。如果左侧的值为真,那么就执行右侧的运算,否则就不执行。

示例代码:

--- - - --
--- - - ---

- --- -- -- --- - - - -- --

--------------- -- -- --

在上面的代码中,左侧的变量 a 的值为真,因此会执行右侧的运算,将 a 赋值为 b 的值,也就是 10

3. ||= 操作符

||= 操作符表示“或运算赋值”,它的作用是将左侧的值和右侧的值进行逻辑或运算,并将运算结果赋值给左侧的变量。如果左侧的值为假,那么就执行右侧的运算,否则就不执行。

示例代码:

--- - - --
--- - - ---

- --- -- -- --- - - - -- --

--------------- -- -- --

在上面的代码中,左侧的变量 a 的值为假,因此会执行右侧的运算,将 a 赋值为 b 的值,也就是 10

4. ??= 操作符

??= 操作符表示“空值运算赋值”,它的作用是将左侧的值和右侧的值进行空值运算,并将运算结果赋值给左侧的变量。如果左侧的值为 nullundefined,那么就执行右侧的运算,否则就不执行。

示例代码:

--- - - -----
--- - - ---

- --- -- -- --- - - - -- --

--------------- -- -- --

在上面的代码中,左侧的变量 a 的值为 null,因此会执行右侧的运算,将 a 赋值为 b 的值,也就是 10

5. 逻辑赋值操作符的使用建议

  • 尽量避免在复杂的表达式中使用逻辑赋值操作符,以免降低可读性。

  • 逻辑赋值操作符并不是在所有的场景下都比其它方式更好,需要根据具体的情况来选择是否使用它们。

6. 总结

本文详细讲解了 ES12 新增的逻辑赋值操作符,分别是 &&=||=??=,并通过示例代码讲述了它们的使用方法。逻辑赋值操作符可以帮助我们写出简洁的代码,提高代码的可读性和可维护性,但需要在具体情况下选择是否使用它们。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/645362c3968c7c53b07ccb33


猜你喜欢

  • 在 Node.js 中使用 Babel 解析 ES6 模块

    在 Node.js 中使用 Babel 解析 ES6 模块 随着前端技术的不断发展,ES6 (ECMAScript 6) 和模块化成为一些新的标准。然而,一些浏览器和 Node.js 版本并不支持这些...

    1 年前
  • # RxJS 操作符:distinctUntilChanged

    RxJS 操作符:distinctUntilChanged RxJS 是一个流行的 JavaScript 库,它提供了强大的响应式编程工具,可用于处理异步数据流。其中一个重要的操作符是 distinc...

    1 年前
  • Web Components:可重用组件的好处

    Web Components 是一种构建可重用组件的现代前端技术。它为开发者提供了开发更加模块化、可重用的组件的方式,使得我们能够更快、更方便地构建复杂的 Web 应用程序。

    1 年前
  • TypeScript 中的迭代器和生成器详解

    TypeScript 是一个为 JavaScript 添加了静态类型检查的编程语言。与原始的 JavaScript 相比,TypeScript 还提供了许多新的语法和特性,其中之一就是迭代器(Iter...

    1 年前
  • 如何选择最佳 CSS Reset?

    在编写前端页面时,一个常见的问题就是如何消除不同浏览器对 HTML 元素的默认样式。这时候我们就需要使用 CSS Reset,但是如何选择一个最佳的 CSS Reset ?这里提供一些指导意义,帮助你...

    1 年前
  • Socket.io 如何进行服务器集群管理

    Socket.io 是一个用于实现实时双向通信的 JavaScript 库,被广泛应用于前端开发领域。在处理大量数据、高并发请求和用户量较大的应用场景中,Socket.io 的服务器也需要进行集群化管...

    1 年前
  • SSE 安全性问题及解决方法

    什么是 SSE Server-Sent Events (SSE) 即服务器推送事件,是一种基于 HTTP 的服务器推送技术。它允许服务器实时地向客户端发送数据,而不需要通过客户端发送请求。

    1 年前
  • 从架构到实战:Serverless 架构实践

    前言 Serverless 架构相较于传统的服务端架构出现较晚,但其具有强大的灵活性、高效性和弹性能够更好的满足不断变化的业务需求。本文主要介绍 Serverless 架构的基本概念以及如何快速上手实...

    1 年前
  • 如何编写可读性更强的 Promise 代码?

    Promise 是 JavaScript 中一个非常重要的概念,它可以解决异步编程中的一些问题,比如回调函数嵌套、数据传递等等。然而,由于其语法特殊,Promise 代码有时候会让人感到晦涩难懂。

    1 年前
  • Apollo Server 解析 URL 参数

    随着 Web 技术的不断发展,前端应用越来越复杂。前端开发者需要用到不同的工具和框架来搭建应用,并且需要处理大量的数据。其中,客户端与服务器之间传递参数是不可避免的。

    1 年前
  • # Redux 中的 action、reducer、store 详解

    Redux 中的 action、reducer、store 详解 Redux 是一个用于 JavaScript 应用的可预测状态容器。它有三个重要的概念:action、reducer、store。

    1 年前
  • SASS 中的注释使用技巧

    在前端开发中,CSS 的编写不仅需要满足功能需求,还需要满足可维护性和可扩展性的要求。这时候就需要用到 CSS 预处理器,例如 SASS。在 SASS 中,注释是一个非常重要的工具,可以为一个项目的开...

    1 年前
  • 在 LESS 中使用 calc 函数时遇到语法错误怎么办?

    在 LESS 中使用 calc 函数时遇到语法错误怎么办? 在前端开发中,CSS 是不可或缺的一部分,而 LESS 又是一种优秀的 CSS 拓展语言。在 LESS 中,我们可以使用 calc() 函数...

    1 年前
  • 全面了解 Enzyme 的 Shallow Rendering

    在前端开发中,测试是不可或缺的一部分。然而,测试不仅仅是验证代码是否能够按预期工作,同时也是检查它是否符合最佳实践。为了提升前端测试的效率和准确度,React 社区推出了一个非常强大的工具 Enzym...

    1 年前
  • ES9 中的静态成员(Static Members)

    在 ES9 中,有一个很重要的特性是静态成员(Static Members),它是面向对象程序设计中的一个关键概念。虽然它在 JavaScript 中早已存在,但 ES9 为静态成员带来了更方便的语法...

    1 年前
  • # Next.js 中如何使用动态路由实现参数路由

    Next.js 中如何使用动态路由实现参数路由 随着 Web 开发的飞速发展,前端技术不断丰富和深入,Next.js 是 React 生态系统中的一个框架,它为 React 应用程序提供了很多好处,其...

    1 年前
  • Sequelize 如何使用 Op.gt?

    在前端开发中,使用 Sequelize 是很常见的任务,它是一个用于 Node.js 的 ORM 框架,可以让我们以对象的方式操作数据库。在 Sequelize 中,我们常常需要使用 Op 对象来定义...

    1 年前
  • PWA 应用如何实现离线访问页面

    PWA(Progressive Web App)是基于 Web 技术构建的一种应用,它的核心特性是离线访问和本地缓存。在网络不稳定或者没有网络的情况下,也可以使用 PWA 应用来访问页面。

    1 年前
  • 利用 CSS Grid 实现复杂布局的逐步解析

    在前端开发中,布局是一个非常重要的部分。在传统的网页设计中,我们通常采用浮动、定位等方式进行布局,但随着网站设计的复杂度不断提高,这些方式已不能满足我们的需求。而 CSS Grid 是在 CSS3 中...

    1 年前
  • 使用 Kubernetes 的 Healthcheck 进行服务健康监测

    在现代化的应用开发中,容器化技术已经成为了不可或缺的一部分。Kubernetes,作为目前最为成熟和流行的容器编排系统,其自带的 Healthcheck 功能可以用于对容器内的服务进行健康监测。

    1 年前

相关推荐

    暂无文章