新 JavaScript 管道操作符:将任何内容转化为单行代码

开发 前端
管道操作符让代码更加清晰直观,是 JavaScript 代码优化的一大利器。虽然目前还在提案阶段,但通过 Babel 已经可以尝鲜,值得在项目中尝试使用!

在传统写法中,代码常常是这样的:

图片图片

使用管道操作符后,可以写成:

图片图片

这种写法干净利落,彻底告别临时变量,也不用再为命名伤脑筋。

现有解决方案的问题

1. 重用变量

应尽量避免使用冗长的变量,这比重复使用短名变量更有利于压缩代码:

图片图片

这种写法存在几个问题:

  • 变量值不可预测
  • 需要追溯赋值历史
  • 代码可读性差
  • 难以维护

与管道运算符不同的是,我们无法确定变量是否总是包含我们在任何给定点上设置的值;我们需要爬升作用域来查找重新赋值。我们本可以在代码的较早处使用_,但它在代码各处的值是无法保证的。

图片图片

现在我们使用的只是下划线,所以如果不查看这些重赋值的右侧,你就无法快速知道变量的类型,除非你有一个像 VS Code 这样的智能编辑器(不过我想你可以说这并不重要,因为它们应该是 "临时 "的--至少在它们不是之前是这样!)

那我们为什么不避开这些临时下划线呢?

2. 嵌套调用

图片图片

这种写法:

  • 阅读顺序不直观
  • 难以修改和调试
  • 容易出错

管道运算符大大优于其他所有方法,它既能让我们摆脱临时变量的困扰,又具有可读性。它就是为此而设计的。

图片图片

这里的%只存在于这一特定管道中。

3. 链式调用的局限

图片图片

链式调用虽好,但有局限:

  • 必须对象支持链式设计
  • 不支持生成器和异步操作
  • 不能混用普通函数

对于对象外的生成器方法、异步/等待和函数/方法调用,它的效果并不好:

图片图片

但所有这些和更多的功能都需要管道操作符,甚至对象字面和asyncimport函数。

图片图片

立即使用管道操作符

通过 Babel 插件可以现在就使用这个特性:

npm install @babel/plugin-proposal-pipeline-operator

配置文件:

{
  "plugins": [
    ["@babel/plugin-proposal-pipeline-operator", { 
      "proposal": "hack" 
    }]
  ]
}

图片图片

管道操作符让代码更加清晰直观,是 JavaScript 代码优化的一大利器。虽然目前还在提案阶段,但通过 Babel 已经可以尝鲜,值得在项目中尝试使用!


责任编辑:武晓燕 来源: 大迁世界
相关推荐

2009-07-21 09:31:00

Scala操作符

2011-04-08 16:26:14

JavaScript

2023-04-24 16:08:09

JavaScripHTMLPDF

2020-03-03 15:42:33

Python字典合并代码

2024-09-20 08:36:22

2010-07-14 14:55:07

Perl操作符

2009-08-19 17:26:28

C# 操作符

2021-10-31 18:59:55

Python操作符用法

2021-04-18 18:42:39

机器学习数据可操作见解

2023-03-13 16:08:00

JavaScript数组函数

2012-02-06 09:13:23

LINQ

2010-07-14 14:18:51

Perl操作符

2009-09-15 17:16:58

LINQ查询操作符

2009-09-16 09:09:23

Linq Contai

2010-07-14 14:30:31

Perl操作符

2010-07-19 11:00:24

Perl操作符

2010-01-28 11:16:28

C++操作符

2022-11-28 23:44:26

JavaScript技巧程序员

2018-06-20 09:09:09

数据存储信息

2018-06-12 15:07:57

IT
点赞
收藏

51CTO技术栈公众号