JavaScript?管道運(yùn)算符及工作原理
JavaScript 管道運(yùn)算符
管道運(yùn)算符是 Javascript 即將推出的功能,它為我們提供了另一種通過(guò)一系列轉(zhuǎn)換傳遞值的方法。 它為開(kāi)發(fā)人員在編寫(xiě)代碼時(shí)試圖實(shí)現(xiàn)的目標(biāo)提供了更多上下文,并允許我們做一些很酷的事情。 在這里,我們將快速了解管道運(yùn)算符工作方式以及我們現(xiàn)在如何使用它們。
Javascript 管道運(yùn)算符的支持
目前,沒(méi)有瀏覽器或服務(wù)器端 ECMAScript 實(shí)現(xiàn)(如 Node.JS)支持管道運(yùn)算符。 但是,我們可以使用 Babel 7.15 讓它們工作。 可以說(shuō)這將允許我們將管道運(yùn)算符添加到我們的代碼中。
Javascript 管道運(yùn)算符的工作原理
管道運(yùn)算符只是在 Javascript 中操作值的另一種方式。 管道運(yùn)算符是 |>。 假設(shè)我們有 3 個(gè)將數(shù)字添加到輸入值的數(shù)學(xué)函數(shù):
// 加 1
let addOne = function(x) {
return x + 1;
}
// 乘 2
let multiplyByTwo = function(x) {
return x * 2;
}
// 除 6
let divideBySix = function(x) {
return x / 6;
}如果我們想將所有這些函數(shù)應(yīng)用于我們擁有的數(shù)字,我們現(xiàn)在可能會(huì)這樣做:
let number = 6; let calculate = addOne(multiplyByTwo(divideBySix(number))); console.log(calculate); // 返回 3.
雖然這可行,但當(dāng)使用多個(gè)函數(shù)時(shí),這可能會(huì)變得非常混亂 – 并且通常會(huì)占用很多行。 因此,我們可以使用這樣的管道運(yùn)算符簡(jiǎn)化上述操作:
let number = 6; let calculate = number |> divideBySix(%) |> multiplyByTwo(%) |> addOne(%); console.log(calculate); // 返回 3.
如我們所見(jiàn),這簡(jiǎn)化了數(shù)字和值的處理,以便我們可以清楚地看到正在發(fā)生的事情。 讓我們分解一下我們所做的:
- 首先,我們使用數(shù)字,并使用管道運(yùn)算符將其傳遞給 divideBySix() 。 我們使用
%來(lái)表示管道運(yùn)算符之前的值,在這種情況下,6 在我們的數(shù)字變量中。 - 然后我們將數(shù)字從 divideBySix() 傳遞給 multiplyByTwo() 。 同樣,我們使用
%來(lái)表示前一個(gè)操作的結(jié)果,即 divideBySix() 函數(shù)的值。 - 最后,我們?cè)俅螆?zhí)行此操作并將 addOne() 添加到我們的值中。 結(jié)果是一樣的,所以最后還是得到了3。
使用管道運(yùn)算符簡(jiǎn)化對(duì)象映射
顯然上面的例子是一個(gè)非常簡(jiǎn)單的應(yīng)用程序,但是我們也可以使用管道操作符來(lái)做一些更酷的事情,比如以更連貫的方式映射數(shù)組。 例如,下面是一個(gè) URL 查詢對(duì)象,并將它們合并為一個(gè)文本字符串,該字符串可以添加到 URL 的末尾:
let URLParams = {
'x' : '10245',
'linkId': 'eojff-efekv-ef0kw',
'author' : 'john-smith',
'featured' : false
}
let getURLQuery = Object.keys(URLParams).map((key) => `${key}=${URLParams[key]}`) |> %.join('&') |> `?${%}`;
// 返回 ?x=10245&linkId=eojff-efekv-ef0kw&author=john-smith&featured=false
console.log(getURLQuery);關(guān)于 Javascript 管道運(yùn)算符的結(jié)論
由于管道操作符沒(méi)有得到廣泛的支持,我們只能在安裝了 Babel 的情況下使用這個(gè)特性。 話雖如此,管道運(yùn)算符為我們的代碼添加了大量上下文,并簡(jiǎn)化了操作,以便以后可以擴(kuò)展它們。 因此,可能值得嘗試將 Babel 放入我們的代碼庫(kù)中。
到此這篇關(guān)于JavaScript 管道運(yùn)算符的文章就介紹到這了,更多相關(guān)js管道運(yùn)算符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
手機(jī)軟鍵盤(pán)彈出時(shí)影響布局的解決方法
這篇文章主要介紹了手機(jī)軟鍵盤(pán)彈出時(shí)影響布局的解決方法的相關(guān)資料,大家開(kāi)發(fā)移動(dòng)端的軟件時(shí)候,肯定會(huì)因?yàn)檐涙I盤(pán)的彈窗影響布局,這里說(shuō)下如何解決,需要的朋友可以參考下2016-12-12
Javascript日期時(shí)間函數(shù)的使用方法舉例
在JavaScript中日期時(shí)間函數(shù)是一組用于操作和處理日期和時(shí)間的函數(shù),這些函數(shù)可以用于獲取當(dāng)前日期和時(shí)間、格式化日期和時(shí)間、計(jì)算日期和時(shí)間的差異、轉(zhuǎn)換日期和時(shí)間的格式等,這篇文章主要給大家介紹了關(guān)于Javascript日期時(shí)間函數(shù)的使用方法,需要的朋友可以參考下2024-02-02
JavaScript中const和var的區(qū)別小結(jié)
本文主要介紹了JavaScript中const和var的區(qū)別小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-10-10
JS實(shí)現(xiàn)無(wú)限輪播無(wú)倒退效果
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)無(wú)限輪播無(wú)倒退效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09
詳解如何使用微信小程序云函數(shù)發(fā)送短信驗(yàn)證碼
這篇文章主要介紹了詳解如何使用微信小程序云函數(shù)發(fā)送短信驗(yàn)證碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
JavaScript創(chuàng)建數(shù)組的方法詳解
這篇文章主要為大家介紹了JavaScript創(chuàng)建數(shù)組的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2021-12-12
詳解如何使用Flutter動(dòng)畫(huà)魔法使UI元素活起來(lái)
這篇文章主要為大家介紹了如何使用Flutter動(dòng)畫(huà)魔法使UI元素活起來(lái)方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
javascript之可拖動(dòng)的iframe效果代碼
用javascript實(shí)現(xiàn)可拖動(dòng)的iframe頁(yè)面效果的js2008-08-08

