--- title: 管道操作符 slug: Web/JavaScript/Reference/Operators/管道操作符 tags: - Experimental - JavaScript - Operator - 语法糖 - 链式 - 链式调用 translation_of: Web/JavaScript/Reference/Operators/Pipeline_operator ---
{{jsSidebar("Operators")}} {{SeeCompatTable}}

试验性的管道操作符 |> (目前其标准化流程处于 stage 1 阶段)允许以一种易读的方式去对函数链式调用。本质上来说,管道操作符是单参数函数调用的语法糖,它允许你像这样执行一个调用:

let url = "%21" |> decodeURI;

使用传统语法写的话,等效的代码是这样的:

let url = decodeURI("%21");

语法

expression |> function

例子

函数链式调用

当链式调用多个函数时,使用管道操作符可以改善代码的可读性。

const double = (n) => n * 2;
const increment = (n) => n + 1;

// 没有用管道操作符
double(increment(double(5))); // 22

// 用上管道操作符之后
5 |> double |> increment |> double; // 22

规范

规范 状态 备注
Pipeline operator draft Stage 1 Not part of the ECMAScript specification yet.

浏览器兼容性Edit

{{Compat("javascript.operators.pipeline")}}

参见