最新ES8特性概述
ECMAScript 2017(ES8)特性概述 整理自 ES8 was Released and here are its Main New Features,歸納於筆者的現代JavaScript 開發:語法基礎與實踐技巧系列文章中;也歡迎關注前端每週清單系列獲得一手資訊。
ECMAScript 2017 或ES8 與2017 年六月底由TC39 正式發布,可以在這裡瀏覽完整的版本;而ES8 中代表性的特徵包括了字符串填充、物件值遍歷、物件的屬性描述符取得、 函數參數清單與呼叫中的尾部逗號、非同步函數、共享記憶體與原子操作等。
字串填充
ES8 中新增了內建的字串填充函數,分別為padStart 與padEnd,該函數能夠透過填充字串的首部或尾部來保證字串達到固定的長度;開發者可以指定填充的字串或使用預設的空格,函數的宣告如下:
str.padStart(targetLength [, padString]) str.padEnd(targetLength [, padString])
如上所示,函數的首個參數為目標長度,即最終生成的字串長度;第二個參數即是指定的填充字串:
'es8'.padStart(2); // 'es8' 'es8'.padStart(5); // ' es8' 'es8'.padStart(6, 'woof'); // 'wooes8' 'es8'.padStart(14, 'wow'); // 'wowwowwowwoes8' 'es8'.padStart(7, '0'); // '0000es8' 'es8'.padEnd(2); // 'es8' 'es8'.padEnd(5); // 'es8 ' 'es8'.padEnd(6, 'woof'); // 'es8woo' 'es8'.padEnd(14, 'wow'); // 'es8wowwowwowwo' 'es8'.padEnd(7, '6'); // 'es86666'
物件值遍歷
Object.values 函數會傳回指定物件的可枚舉的屬性值數組,數組中值順序與for-in 循環保持一致,函數的聲明為:
Object.values(obj)
首個參數obj 即為需要遍歷的目標對象,它可以為某個物件或陣列(陣列可以看做鍵為下標的物件):
const obj = { x: 'xxx', y: 1 }; Object.values(obj); // ['xxx', 1] const obj = ['e', 's', '8']; // same as { 0: 'e', 1: 's', 2: '8' }; Object.values(obj); // ['e', 's', '8'] // when we use numeric keys, the values returned in a numerical // order according to the keys const obj = { 10: 'xxx', 1: 'yyy', 3: 'zzz' }; Object.values(obj); // ['yyy', 'zzz', 'xxx'] Object.values('es8'); // ['e', 's', '8']
而Object.entries 方法則會將某個物件的可枚舉屬性與值按照二維數組的方式返回,數組中順序與Object.values 保持一致,該函數的聲明與使用為:
const obj = { x: 'xxx', y: 1 }; Object.entries(obj); // [['x', 'xxx'], ['y', 1]] const obj = ['e', 's', '8']; Object.entries(obj); // [['0', 'e'], ['1', 's'], ['2', '8']] const obj = { 10: 'xxx', 1: 'yyy', 3: 'zzz' }; Object.entries(obj); // [['1', 'yyy'], ['3', 'zzz'], ['10': 'xxx']] Object.entries('es8'); // [['0', 'e'], ['1', 's'], ['2', '8']]
- obj 即為來源對象,而prop 即為需要查看的屬性名稱;結果中包含的鍵可能有configurable、enumerable、writable、get、set 以及value。
Object.getOwnPropertyDescriptor(obj, prop)
登入後複製 const obj = { get es8() { return 888; } }; Object.getOwnPropertyDescriptor(obj, 'es8'); // { // configurable: true, // enumerable: true, // get: function es8(){}, //the getter function // set: undefined // }
登入後複製- 函數參數清單與呼叫中的尾部逗號該特性允許我們在定義或呼叫函數時添加尾部逗號而不報錯:
function es8(var1, var2, var3,) { // ... } es8(10, 20, 30,);
function fetchTextByPromise() { return new Promise(resolve => { setTimeout(() => { resolve("es8"); }, 2000); }); } async function sayHello() { const externalFetchedText = await fetchTextByPromise(); console.log(`Hello, ${externalFetchedText}`); // Hello, es8 } sayHello(); console.log(1); sayHello(); console.log(2); // 调用结果 1 // immediately 2 // immediately Hello, es8 // after 2 seconds
以上是最新ES8特性概述的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

es2017是es8。 es全名為“ECMAScript”,是根據ECMA-262標準實現的通用腳本語言,而由2017年6月正式發布的版本,其正式名為ECMAScript2017(ES2017),因其是ECMAScript的第8個版本,因此可簡稱為es8。

C++中運算子重載問題和解決方法概述引言:運算子重載是C++語言的一個重要特性,它允許程式設計師自訂現有的運算子來操作自訂的資料型別。但是,運算子重載需要慎重使用,因為一旦使用不當或過度使用,會導致程式碼可讀性降低、出現歧義和效率降低等問題。本文將概述C++中運算子重載的常見問題,並提供對應的解決方法和程式碼範例。一、運算子重載的問題1.1歧義問題在運算子重載

Tkinter是python中一個強大的GUI函式庫,可用於建立跨平台的桌面應用程式。憑藉其易用性和廣泛的功能,它為建立使用者介面、處理事件和管理佈局提供了各種工具。建立GUI窗口要建立GUI窗口,需要使用Tkinter.Tk()方法。此方法傳回一個Tk()對象,表示應用程式的主視窗。視窗可以使用title()方法設定標題,並使用geometry()方法設定視窗大小和位置。 importtkinterastkroot=tk.Tk()root.title("我的第一個Tkinter應用程式")root.g

這篇文章跟大家整理分享ECMAScript特性,帶大家花一個小時,快速了解ES6~ES12的全部特性。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

實現應用程式的高可用性至關重要,以確保關鍵業務服務的無縫運作。對於使用PHP建置的應用程序,有多種最佳實踐可用於實現24/7的可用性。故障轉移和容錯負載平衡:使用後端負載平衡器將流量分佈到多個伺服器,避免單點故障。故障轉移:設定自動故障轉移機制,以便在發生故障時將流量轉移到備用伺服器。容錯編碼:使用容錯編碼技術,例如RaiD或擦除碼,保護資料免受磁碟故障的影響。冗餘和彈性自動擴展:啟用自動擴展功能,以便根據負載動態新增或刪除伺服器。多可用區部署:將應用程式部署到多個可用區(AZ),以最大程度地

隨著PHP語言的發展,開發人員需要更多的工具來解決現代應用程式的需求和挑戰,其中之一就是事件驅動編程,而PHP8.0的EventLoop庫正是為這個目的而生的。本文將對該庫進行概述和介紹。什麼是EventLoop在傳統的PHP應用程式中,大多數操作都是同步的。也就是說,程式會執行一些程式碼,然後等待相關的資料回傳,再繼續執行後續的程式碼。這種程式設計模型對於某些應用

Yii框架是一個現代、高效能的PHP框架,旨在簡化和加速WEB應用程式的開發。它提供了一個健壯的基礎,使開發人員能夠專注於業務邏輯,而不是低階細節。幕後故事模組化架構:Yii採用模組化架構,使應用程式可以輕鬆擴展和自訂。模組是一種獨立的可重複使用程式碼區塊,可用於實現特定功能,例如使用者管理或電子商務。 MVC模式:Yii遵循mvc(模型-視圖-控制器)模式,將應用程式邏輯與表示層分開。這促進程式碼的可維護性,並改善應用程式的可測試性。 ORM支援:Yii提供了一個強大的物件關係映射(ORM)層,使開發人員能夠

無線網路概述隨著科技的快速發展,無線網路成為了現代生活中不可或缺的一部分。我們的手機、電腦、智慧家庭等設備都依賴無線網路進行通訊和連接。在這篇文章中,我們將對無線網路進行概述,探討它的發展歷程、原理和應用。無線網路的發展歷程可追溯到19世紀的無線電通訊技術。當時,人們利用無線電波實現了遠距離的聲音和影像傳輸,開創了無線通訊的先河。隨著電子技術的進一步
