温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ES6管道运算符怎么用

发布时间:2022-03-25 10:58:01 来源:亿速云 阅读:125 作者:iii 栏目:web开发

这篇文章主要介绍“ES6管道运算符怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ES6管道运算符怎么用”文章能帮助大家解决问题。

JS中得管道运算符。

Unix 操作系统有一个管道机制(pipeline),可以把前一个操作的值传给后一个操作。这个机制非常有用,使得简单的操作可以组合成为复杂的操作。许多语言都有管道的实现,现在有一个提案,让 JavaScript 也拥有管道机制。

JavaScript 的管道是一个运算符,写作|>。它的左边是一个表达式,右边是一个函数。管道运算符把左边表达式的值,传入右边的函数进行求值。

x |> f

// 等同于

f(x)

管道运算符最大的好处,就是可以把嵌套的函数,写成从左到右的链式表达式。

function doubleSay (str) {

  return str + ", " + str;

}

function capitalize (str) {

  return str[0].toUpperCase() + str.substring(1);

}

function exclaim (str) {

  return str + '!';

}

//这三个链式表达式写法:

// 传统的写法

exclaim(capitalize(doubleSay('hello')))

// "Hello, hello!"

// 管道的写法

'hello'

  |> doubleSay

  |> capitalize

  |> exclaim

// "Hello, hello!"

管道运算符只能传递一个值,这意味着它右边的函数必须是一个单参数函数。如果是多参数函数,就必须进行柯里化,改成单参数的版本。

首先说一下柯里化是什么

// 普通的函数

function fn(a,b) {

    return a+b

}

//柯里化后

function cfn(a) {

    return function (b) {

        return a + b

    }

}

fn(5, 2)         

cfn(5)(2)   

function double (x) { return x + x; }

function add (x, y) { return x + y; }

let person = { score: 25 };

person.score

  |> double

  |> (_ => add(7, _))

// 57

上面代码中,add函数需要两个参数。但是,管道运算符只能传入一个值,因此需要事先提供另一个参数,并将其改成单参数的箭头函数_ => add(7, _)。这个函数里面的下划线并没有特别的含义,可以用其他符号代替,使用下划线只是因为,它能够形象地表示这里是占位符。

具体执行就是将25传值给double得到50即第一个函数得执行结果,然后再将50传值给匿名函数返回add(x,y)函数默认x得值未7,"_"为占位符他会等于上一个结果得那个50所以最后得值为57.

管道运算符对于await函数也适用。

x |> await f

// 等同于

await f(x)

const userAge = userId |> await fetchUserById |> getAgeFromUser;

// 等同于

const userAge = getAgeFromUser(await fetchUserById(userId));

关于“ES6管道运算符怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

es6
AI