成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

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

這時候,像Babel這樣的轉譯器派得上用場。Babel可以將用最新版JavaScript編寫的代碼轉換成可在現有和老式瀏覽器中運行的舊版JavaScript代碼。

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

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

該版本經配置后可以識別F#管道運算符,該運算符由符號|>表示。

運算符提供了調用只有一個實參的函數的替代方法,比如說允許第2行的代碼寫成第3行的代碼。

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

該管道運算符讓開發人員在串聯多個函數時(一個函數的結果傳遞到下一個函數,依次類推),可以編寫更易讀的代碼。

假設你定義了下列函數,這些函數分別重復單詞、將單詞大寫以及添加感嘆號。 

  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串聯諸函數,無需使用管道運算符,方法如下: 

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

這些函數使用管道運算符串聯起來,方法如下: 

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

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

將運算符添加到Babel之前,目前管道運算符的五個變種正在評估中;除了現有的minimal變種和Smart變種外,Babel 7.5增添了支持運算符F#變種的功能。

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

Babel 7.5也不再需要依賴多個babel插件以便解析不同JavaScript模塊打包工具的動態導入,比如webpack和rollup。相反,開發人員現在只需將@babel/plugin-syntax-dynamic-import插件添加到Babel配置文件中。

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

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

可以通過在Babel的配置文件中加入以下內容,將支持命名空間的試驗性功能添加到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版本的完整的其他功能和修復程序。

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

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

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

責任編輯:龐桂玉 來源: 51CTO
相關推薦

2009-08-18 18:01:20

F#函數式語言

2011-06-09 09:52:41

F#

2009-11-16 09:05:46

CodeTimer

2010-01-07 10:04:18

F#函數式編程

2009-11-09 17:51:51

F#函數式編程

2009-06-22 13:43:01

F#函數式編程

2022-06-07 09:30:35

JavaScript變量名參數

2010-01-15 08:33:13

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

2012-11-06 10:01:35

ContinuatioF#

2010-01-26 08:25:06

F#語法F#教程

2021-09-01 08:55:20

JavaScript代碼開發

2021-11-30 10:20:24

JavaScript代碼前端

2010-03-17 18:38:53

Java編程語言

2010-04-07 16:51:59

F#

2015-03-15 01:55:25

編程語言排行榜

2018-05-23 08:41:14

編程語言Azure Searc數字化

2010-03-15 18:25:27

Java編程語言

2022-11-10 08:26:54

.NET 7C# 11

2010-03-26 19:22:08

F#代理

2010-04-07 09:46:05

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 看毛片的网站 | 国产精品无码久久久久 | 99精品视频在线 | 国产精品国产馆在线真实露脸 | 亚洲精品国产电影 | 欧美在线观看一区 | 天天插天天搞 | 精品久久久久久久久亚洲 | 欧美xxxx日本 | 午夜电影在线播放 | 国产精品久久久久久久免费大片 | 91在线一区| 综合网中文字幕 | 日日干日日操 | 亚洲激情在线观看 | 三a毛片| 久久av一区二区三区 | 国产乱码久久久 | 亚洲国产精品久久久久 | 欧美国产日韩精品 | 天天射美女 | 国产精品日本一区二区在线播放 | 午夜精品| 久久久久久国产精品免费免费 | 亚州精品天堂中文字幕 | 精品欧美一区二区三区久久久 | 久久久久久国产精品免费免费男同 | 在线亚洲精品 | 欧美一二精品 | 欧美精选一区二区 | 日韩a在线 | 9久久婷婷国产综合精品性色 | 欧美国产大片 | 亚洲一区中文字幕在线观看 | 韩国av一区二区 | 黄在线免费观看 | 成人午夜视频在线观看 | 日韩精品在线一区 | 久久r久久 | 久久久久国产一区二区三区 | 成人国产一区二区三区精品麻豆 |