ES2022經Ecma大會批准
以下是ES2022新功能列表:
.at() 內建可索引的方法
.at內建可索引的方法。
const cart = ['1', '2', '3']; // first element cart.at(0); // '1' // last element cart.at(-1); // '2' // out of bounds cart.at(-100); // undefined cart.at(100); // undefined const int8 = new Int8Array([0, 10, 42, -10]); // first element int8.at(0); // 0 // last element int8.at(-1); // -10 // out of bounds int8.at(-100) // undefined int8.at(100) // undefined const sentence = 'This is a sample sentence' // first element sentence.at(0); // 'T' // last element sentence.at(-1); // 'e' // out of bounds sentence.at(-100) // undefined sentence.at(100) // undefined |
正規表示式匹配索引
有關捕獲的子字串的開始和結束索引的附加資訊
/(?<xs>x+)(?<ys>y+)/.exec('xxxyyxx'); /*[ 'xxxyy', 'xxx', 'yy', index: 0, input: 'xxxyyxx', groups: [Object: null prototype] { xs: 'xxx', ys: 'yy' } ]*/ let input = "abcd"; let match = /b(c)/.exec(input); let indices = match.indices; // `indices` has the same length as match indices.length === match.length // The first element of `indices` contains the start/end indices of the match indices[0]; // [1, 3]; input.slice(indices[0][0], indices[0][1]); // same as match[0] // The second element of `indices` contains the start/end indices of the first capture indices[1]; // [2, 3]; input.slice(indices[1][0], indices[1][1]); // same as match[1]); Object.hasOwn Object.hasOwn let books = {} books.prop = 'exists'; // `hasOwn` will only return true for direct properties: Object.hasOwn(books, 'prop'); // returns true Object.hasOwn(books, 'toString'); // returns false Object.hasOwn(books, 'hasOwnProperty'); // returns false // The `in` operator will return true for direct or inherited properties: 'prop' in books; // returns true 'toString' in books; // returns true 'hasOwnProperty' in books; // returns true |
錯誤的原因
Cause 屬性指示錯誤的原因。
const actual = new Error('a better error!', { cause: 'Error cause' }); actual instanceof Error; // true actual.cause; // 'Error cause' try { maybeWorks(); } catch (err) { throw new Error('maybeWorks failed!', { cause: err }); } |
頂級await
在模組中的非同步函式之外等待
// say this is index.mjs // fails await Promise.resolve('1'); // → SyntaxError: await is only valid in async function // fix with wrapping (async function() { await Promise.resolve('1'); // → 2 }()); // to top-level await await Promise.resolve('1') // '1' const i18n = await import(`./content-${language}.mjs`); |
類欄位宣告
公共和私有欄位的正交資訊組合。
class SampleClass { /* instead of: constructor() { this.publicID = 42; } */ publicID = 42; // public field /* instead of: static get staticPublicField() { return -1 } */ static staticPublicField = -1; // static private field static #staticPrivateField = 'private'; //private methods privateMethod() {} // static block static { // executed when the class is created } } |
私有欄位的人體工程學brand檢查
沒有exceptions的brand檢查:
class C { 井號brand; 井號method() {} get 井號getter() {} static isC(obj) { // in keyword to check return 井號brand in obj && 井號method in obj && 井號getter in obj; } } |
相關文章
- ES2022新特性
- ECMA 2023(ES14) 新特性
- ECMA 2016(ES7)新特性
- ECMA 2019(ES10) 新特性
- ECMA 2022 (es13) 新特性
- FE.ES-理解ECMA Javascript的thisJavaScript
- FE.ES-理解ECMA Javascript作用域JavaScript
- ES2022 中的4個最重要的特性
- 越南批准了網路安全法
- 迅視財經 探館長沙智慧製造大會
- 2017全球網際網路經濟大會在京開幕
- 《自然·神經科學》:苦難會重塑大腦,或將永久改變大腦模式!模式
- 荷蘭阿姆斯特丹大學:研究發現肥胖會改變大腦神經元
- ECMA標準ECMAScript(JavaScript的一個標準)和C#JavaScriptC#
- 大彙總 | 一文學會八篇經典CNN論文CNN
- CBOE催促SEC批准比特幣ETF的發行比特幣
- 數字經濟快速崛起,2020中國國際數字經濟大會乘風而來!
- 綠盟君帶你去2020世界數字經濟大會暨第十屆智慧城市與智慧經濟博覽會
- 個推大資料:閒置經濟正在崛起,男人更會過日子!大資料
- 菲律賓政府批准在特別經濟區成立該國第一家加密貨幣企業加密
- Aquis Exchange PLC 已獲得英國 FCA 的批准UI
- [ES6] 細化ES6之 -- ECMA6是什麼
- 從 ECMA 規範解析 JavaScript 預設的取值和賦值行為JavaScript賦值
- 新華三受邀廣東省衛生經濟學會大會,8K醫療引圍觀
- 讓治理創造新價值 網路新“楓橋經驗”大會聚焦數字經濟治理體系
- 遨遊GMTC大前端大會前端
- 2024全球數字經濟大會:大模型時代下DataOps驅動企業數智化升級大模型
- 歐盟委員會剛剛批准了總額約20億歐元的綠色和數字轉型資金
- 從1992年到2028年,世界十大經濟體會怎麼變化?
- 2022全球數字經濟大會召開,OceanBase獲創新引領成果獎
- 安博通亮相2022全球數字經濟大會,這些精彩不容錯過!
- 2022年第二季度上海財經大學上海市社會經濟指數系列
- 2018年面經大合集
- “懂行人”聚會做“蛋糕”?華為“懂行大會2020”大猜想!
- 大咖雲集騰訊DevSecOps實踐研討會,共話落地實踐經驗dev
- 實戰經驗:為什麼大資料業務分析幾乎都會失敗?大資料
- QQ瀏覽器Date相關函式實現不符合ECMA規範瀏覽器函式
- Java秋招面經大合集(含BAT等大廠面經,均已拿offer)JavaBAT