JavaScript |管道操作员
JavaScript 管道运算符(|>)用于将表达式的值通过管道传递到函数中。该运算符使链式函数更具可读性。使用(|>)运算符调用此函数,管道运算符上使用的任何值都作为参数传递给函数。这些函数按照它们对参数进行操作的顺序放置。
句法:
expression |> function
使用 Pipeline Operator:由于 Pipeline Operator 是一项实验性功能,目前处于第 1 阶段提案中,因此不支持当前可用的浏览器,因此也不包含在 Node.js 中。但是,可以使用 Babel(JavaScript 编译器)来使用它。
脚步:
- 在继续之前,请确保已安装 Node.js。
- 在桌面上创建一个目录(比如 pipeline-operator),然后在该目录中创建一个 JavaScript 文件(比如 main.js)。
- 导航到该目录并初始化一个package.json文件,该文件包含有关项目及其依赖项的相关信息。
npm init
- 安装 babel 以使用运算符。管道运算符目前不是 JavaScript 语言的一部分,babel 用于编译代码,以便 Node.js 可以理解它。
npm install @babel/cli @babel/core @babel/plugin-proposal-pipeline-operator
- 为了指导 babel 正确编译代码,使用以下行创建一个名为.babelrc的文件:
{ "plugins": [ [ "@ babel/plugin-proposal-pipeline-operator", { "proposal" : "minimal" } ] ] }
- 在 package.json 文件中添加一个启动脚本,它将运行 babel:
"start" : "babel main.js --out-file output.js && node output.js"
- 运行代码:
npm start
例子:
Javascript
// JavaScript Code (main.js)
function add(x) {
return x + 10;
}
function subtract(x) {
return x - 5;
}
// Without pipeline operator
let val1 = add(subtract(add(subtract(10))));
console.log(val1);
// Using pipeline operator
// First 10 is passed as argument to subtract
// function then returned value is passed to
// add function then value we get is passed to
// subtract and then the value we get is again
// passed to add function
let val2 = 10 |> subtract |> add |> subtract |> add;
console.log(val2);
输出:
20
20