“ |>”运算符在Javascript中做什么?

Shn*_*ick 8 javascript syntax

我最近正在阅读有关Javascript的内容,并遇到了一些对我来说似乎陌生的语法:

const max = {a: 1, b: 2, c: 3}
  |> Object.values 
  |> (_ => Math.max(..._))
Run Code Online (Sandbox Code Playgroud)

|>在这种情况下到底意味着什么?

FZs*_*FZs 5

所述管道运算符|>是一个非标准实验操作(目前,只能在Firefox,通过使得它明确地),其通过它的第一个操作数作为参数传递给它的第二个操作数(其应该是一个功能)。

其目标是使函数链接更具可读性。

转换为这种情况,它将如下所示:

const max = (_ => Math.max(..._))(
  Object.values({a: 1, b: 2, c: 3})
)

console.log(max) //3
Run Code Online (Sandbox Code Playgroud)

  • 首先,传递{a: 1, b: 2, c: 3}Object.values
  • 然后,将结果传递给匿名函数 (_ => Math.max(..._))
  • 最后,将输出分配给变量 max