ES11 新增的可扩展的 $ 和 $$ 变量:一种更快的管道式编程方式

在前端开发中,我们经常需要通过 DOM 操作来实现一些动态的效果,这时候就需要使用到选择器来获取目标元素。在以往的开发中,我们通常使用 document.querySelector()document.querySelectorAll() 来查找元素,但是它们的功能有些有限,不能实现一些更复杂的操作。而 ES11 新增的可扩展的 $$$ 变量则可以实现更快的管道式编程方式,提高开发效率,本文将对此进行详细讲解。

理解管道式编程

管道式编程是一种编程风格,它将一系列操作连接起来,通过数据流动的方式依次处理数据,从而实现目标功能。通常我们使用管道式编程的方式语义更加清晰简洁,也更为灵活和可读性更高。

可扩展的 $$$ 变量

在 ES11 中,新增的可扩展的 $$$ 变量,它们实际上就是对 document.querySelector()document.querySelectorAll() 的封装,具有更多强大的功能。

使用 $ 变量

$ 变量是一个封装了 querySelector 的方法,通过 $ 变量我们可以轻松地获取到我们要操作的元素,如下所示:

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

$ 变量的最大特点就是它支持对已查找到的元素再次进行操作,以实现更为灵活的功能。例如,我们可以通过 $ 变量来获取文本元素 span 的文本内容,并将其转换成大写:

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

使用 $$ 变量

$$ 变量是一个封装了 querySelectorAll 的方法,通过 $$ 变量我们可以轻松地获取到我们想要操作的元素列表,如下所示:

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

$ 变量一样,$$ 变量也支持对已查找到的元素集合再次进行操作,以实现更为灵活的功能。例如,我们可以通过 $$ 变量来获取所有 input 元素,并将其销毁:

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

多重操作

通过 $$$ 变量,我们可以实现更加复杂的选择器操作。例如,在下面的例子中,我们首先使用 $ 变量来获取 #example 元素,然后使用 $$ 变量获取其后代元素中所有包含类 red 的元素,并将它们的文本内容转换成大写:

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

总结

ES11 新增的可扩展的 $$$ 变量,不仅增强了选择器的功能,而且为我们提供了更加灵活和高效的操作方式,可以大大提高我们的开发效率。在实际开发中,我们可以结合使用 $$$ 变量以及管道式编程的方式,以实现更加高效和灵活的功能。

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


猜你喜欢

  • Express.js 的模板引擎及使用教程

    前言 随着 Web 技术的快速发展,现今的 Web 应用程序已经越来越复杂和庞大,而后端框架的选择也开始变得多样化。不难发现,使用 Node.js 开发后端的应用程序变得越来越流行。

    1 年前
  • ES2020 之 BigInt 数据类型详解

    ES2020 新增了 BigInt 数据类型,用于解决在 JavaScript 中运算超过 2 的 53 次方所能表示的数字时出现的精度误差问题。BigInt 类型可以表示任意大小的整数,是一个非常实...

    1 年前
  • Flexbox 常见问题解答之:如何实现垂直居中

    随着网页设计越来越复杂,实现垂直居中文本,图片,甚至是整个块级元素,成为了前端开发人员面临的一个普遍问题。在过去,我们可能会使用相对定位和一个明确定义高度的容器来完成垂直居中的效果。

    1 年前
  • PM2 常见问题:如何解决 PM2 启动应用程序后出现 ENOSPC 错误

    当使用 PM2 启动应用程序时,可能会遇到 ENOSPC 错误,这是 PM2 daemon 工作目录下的某些文件数目超过了操作系统允许的最大数量导致的。在这篇文章中,我们将深入探讨 ENOSPC 的原...

    1 年前
  • 在 LESS 中使用 calc() 函数的正确姿势

    在 LESS 中使用 calc() 函数的正确姿势 LESS 是一种非常有用的 CSS 预处理器,它为前端开发提供了许多方便和便利。而 calc() 函数则是 CSS3 中非常重要的一项功能,它可以计...

    1 年前
  • Next.js 中优秀 UI 组件库 MATERIAL UI 的应用实战

    随着前端技术的发展,越来越多的企业和开发者开始采用 Next.js 这一流行的 SSR 框架。Next.js 提供了丰富的功能和便利的开发体验,而在它的生态环境中,组件库的选择也是至关重要的。

    1 年前
  • Hapi+Babel+Webpack 环境配置实战教程 - 适配 ES6 带来的兼容性问题

    在日益发展的 Web 前端技术中,ES6 已经成为了主流的开发语言。但是,新的语法特性带来的兼容性问题也逐渐浮现出来。为了在项目中使用 ES6,我们需要使用 Hapi+Babel+Webpack 的整...

    1 年前
  • 实战篇:快速搭建一个 Vue SPA 应用的最佳实践

    在前端开发中,Vue 是一款相当流行的框架之一,Vue 具有简单易用的特点,可以使我们快速地构建一个高效的单页应用(SPA)。本文将介绍一些快速构建 Vue SPA 应用的最佳实践。

    1 年前
  • 使用 ESLint 遇到了坑,我终于搞懂了

    ESLint 是一个用于检查 JavaScript 代码的工具,它可以帮助我们避免一些常见的错误,并提供一些最佳实践的建议。使用 ESLint 可以让我们的代码更加规范和易于维护。

    1 年前
  • Koa 应用中使用 MySQL 进行数据库操作

    Koa 是一个基于 Node.js 平台的 Web 框架,它提供了一些方便、简洁的 API 和工具,让开发者可以更优雅、更快速地构建 Web 应用。在实际应用中,我们需要经常与数据库进行交互,而 My...

    1 年前
  • ES6 中的解构赋值用法详解

    在 ES6 之前,用过 JavaScript 的人都知道,获取一个对象的属性值通常需要用到“点运算符”(“.”),如 object.property,或者通过“中括号”(“[]”)来获取键对应的值,如...

    1 年前
  • 使用 Socket.io 实现基于时间轴的数据同步

    在前端开发中,我们经常需要将某些数据实时同步到其他浏览器中。比如,在协作编辑器、直播间等场景中,多个用户需要在同一个页面中看到实时更新的数据。通过 Socket.io 技术,我们可以实现基于时间轴的数...

    1 年前
  • MongoDB 核心架构及存储机制深度探讨

    MongoDB是目前使用最广泛的NoSQL数据库之一。它由C++编写,具有高可用性、可扩展性和灵活性,适用于大量、半结构化数据的管理和存储。本文将重点探讨MongoDB的核心架构和存储机制。

    1 年前
  • 如何在 Android 中访问 RESTful API 接口

    RESTful API 是目前最流行的 Web API 设计风格,它定义了一组原则,用于创建可管理、易扩展且可维护的 Web 服务。本篇文章将为大家介绍如何在 Android 应用中访问 RESTfu...

    1 年前
  • 在 React Native 项目中如何使用 Enzyme 断言 Assertions

    什么是 Enzyme Enzyme 是一个 React 的测试工具库,它提供了一种对 React 组件进行测试的方式,并使我们能够模拟出不同的交互情况和渲染状态。它的 API 简单易懂,让我们可以使用...

    1 年前
  • 如何使用 Cypress 进行 E2E 测试

    在现代 Web 应用程序开发中,端到端(E2E)测试是不可或缺的。在此之前,大多数人使用 Selenium 等第三方工具来执行自动化测试,但这些工具的缺点是不太稳定、难以使用和维护。

    1 年前
  • Redis 客户端限流遇到的问题及解决方案:如何使用限流控制轻松应对大流量访问

    当我们面对大量并发请求时,系统很容易因请求量过大而崩溃。这时候,限流机制就显得尤为重要。Redis 作为一种高效的内存数据库,其客户端限流也是非常可靠的。在本文中,我们将介绍 Redis 客户端限流遇...

    1 年前
  • CSS Grid 布局实现对齐布局技巧教程

    CSS Grid 是一种新的布局模式,可以方便地实现复杂的布局要求。在前端开发中,经常需要实现不同的布局要求,其中对齐布局是一种常见的需求。本文将介绍 CSS Grid 布局实现对齐布局的技巧和方法。

    1 年前
  • Material Design 中使用 Menu Item 处理点击事件的步骤!

    引言 在前端开发中,使用 Material Design 框架可以帮助我们更快速的完成项目。其中,Menu Item 是很常用的组件。但是,在使用时,我们有时候需要处理点击事件,这时候该怎么做呢?本文...

    1 年前
  • 在 Deno 中使用 TCP 套接字进行网络编程

    Deno 是一个基于 V8 引擎的 JavaScript 和 TypeScript 运行时,它具有快速启动速度、安全性高、内置模块等优点,逐渐受到前端开发者的青睐。

    1 年前

相关推荐

    暂无文章