自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JavaScript新的Babel版本借鑒F#和Julia編程語言中的干凈代碼功能

譯文
開發(fā) 前端 后端
Facebook、Netflix及其他許多公司使用最新版Babel JavaScript轉(zhuǎn)譯器中的新功能。

JavaScript新的Babel版本借鑒F#和Julia編程語言中的干凈代碼功能

【51CTO.com快譯】開發(fā)人員常常無法利用近年來為JavaScript語言添加的語法功能,這是由于要編寫必須在較舊的Web瀏覽器上運(yùn)行的代碼。

這時(shí)候,像Babel這樣的轉(zhuǎn)譯器派得上用場(chǎng)。Babel可以將用最新版JavaScript編寫的代碼轉(zhuǎn)換成可在現(xiàn)有和老式瀏覽器中運(yùn)行的舊版JavaScript代碼。

使用轉(zhuǎn)譯器讓開發(fā)人員可以充分利用較新的JavaScript功能,比如讓開發(fā)人員可以編寫更易讀的代碼,并使異步編程更容易。

本周發(fā)布了Babel 7.5,它在這方面邁出了另一步:為JavaScript添加支持F#和Julia編程語言的一項(xiàng)便利功能。

該版本經(jīng)配置后可以識(shí)別F#管道運(yùn)算符,該運(yùn)算符由符號(hào)|>表示。

運(yùn)算符提供了調(diào)用只有一個(gè)實(shí)參的函數(shù)的替代方法,比如說允許第2行的代碼寫成第3行的代碼。

  1. function repeat (str) {  return str + ", " + str;  
  2. repeat("hello"
  3. "hello" |> repeat 

該管道運(yùn)算符讓開發(fā)人員在串聯(lián)多個(gè)函數(shù)時(shí)(一個(gè)函數(shù)的結(jié)果傳遞到下一個(gè)函數(shù),依次類推),可以編寫更易讀的代碼。

假設(shè)你定義了下列函數(shù),這些函數(shù)分別重復(fù)單詞、將單詞大寫以及添加感嘆號(hào)。 

  1. function repeat (str) {  
  2. return str + ", " + str;  
  3.  
  4. function capitalize (str) {  
  5. return str[0].toUpperCase() + str.substring(1);  
  6.  
  7. function exclaim (str) {  
  8. return str + '!' 
  9.  

你可以用JavaScript串聯(lián)諸函數(shù),無需使用管道運(yùn)算符,方法如下: 

  1. let result = exclaim(capitalize(repeat("hello")));  
  2. result //=> "Hello, hello!"  

這些函數(shù)使用管道運(yùn)算符串聯(lián)起來,方法如下: 

  1. let result = "hello"  
  2. |> repeat  
  3. |> capitalize  
  4. |> exclaim;  
  5. result //=> "Hello, hello!"  

管道運(yùn)算符仍處于提議階段,這意味著要將@babel/plugin-proposal-pipeline-operator添加到Babel配置文件中,才能在Babel中啟用它。

將運(yùn)算符添加到Babel之前,目前管道運(yùn)算符的五個(gè)變種正在評(píng)估中;除了現(xiàn)有的minimal變種和Smart變種外,Babel 7.5增添了支持運(yùn)算符F#變種的功能。

F#管道運(yùn)算符可以與帶多個(gè)實(shí)參的函數(shù)一起使用,只需將它與JavaScript的箭頭函數(shù)結(jié)合使用。在異步編程中使用await關(guān)鍵字時(shí),箭頭函數(shù)也與F#管道運(yùn)算符一起使用。你可以在此(https://github.com/tc39/proposal-pipeline-operator)閱讀有關(guān)管道運(yùn)算符以及它如何與Babel一起使用的更多詳細(xì)信息。

Babel 7.5也不再需要依賴多個(gè)babel插件以便解析不同JavaScript模塊打包工具的動(dòng)態(tài)導(dǎo)入,比如webpack和rollup。相反,開發(fā)人員現(xiàn)在只需將@babel/plugin-syntax-dynamic-import插件添加到Babel配置文件中。

Babel不僅可以從較新的JavaScript代碼來轉(zhuǎn)譯,還可以從JavaScript衍生語言TypeScript來轉(zhuǎn)譯。

這個(gè)最新的Babel版本還讓開發(fā)人員可以在其代碼中使用TypeScript的命名空間。命名空間讓開發(fā)人員可以告訴計(jì)算機(jī)將代碼拆分成更小的不同代碼塊,那樣他們可以更確信變量、函數(shù)和對(duì)象的名稱不會(huì)沖突。

可以通過在Babel的配置文件中加入以下內(nèi)容,將支持命名空間的試驗(yàn)性功能添加到Babel的TypeScript插件中。 

  1. module.exports = { 
  2.   plugins: [ 
  3.     ["@babel/plugin-transform-typescript", { 
  4.       allowNamespaces: true 
  5.     }] 
  6.   ] 
  7.  

此處(https://github.com/babel/babel/releases/tag/v7.5.0)附有Babel 7.5版本的完整的其他功能和修復(fù)程序。

Babel被許多大公司使用,包括Facebook、Netflix、Cloudflare、PayPal和愛彼迎等。

原文標(biāo)題:JavaScript borrows clean code feature from F# and Julia programming languages in new Babel release,作者:Nick Heath

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2009-08-18 18:01:20

F#函數(shù)式語言

2011-06-09 09:52:41

F#

2009-11-16 09:05:46

CodeTimer

2010-01-07 10:04:18

F#函數(shù)式編程

2009-06-22 13:43:01

F#函數(shù)式編程

2009-11-09 17:51:51

F#函數(shù)式編程

2022-06-07 09:30:35

JavaScript變量名參數(shù)

2012-11-06 10:01:35

ContinuatioF#

2021-09-01 08:55:20

JavaScript代碼開發(fā)

2010-01-15 08:33:13

F#F#類型推斷F#教程

2010-01-26 08:25:06

F#語法F#教程

2021-11-30 10:20:24

JavaScript代碼前端

2010-03-17 18:38:53

Java編程語言

2010-04-07 16:51:59

F#

2010-03-15 18:25:27

Java編程語言

2018-05-23 08:41:14

編程語言Azure Searc數(shù)字化

2015-03-15 01:55:25

編程語言排行榜

2022-11-10 08:26:54

.NET 7C# 11

2010-03-26 19:22:08

F#代理

2024-03-26 11:54:35

編程抽象代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)