日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

ECMAScript 2024 正式發布,新特性一覽!

來源: 責編: 時間:2024-06-28 17:12:30 316觀看
導讀2024 年 6 月 26 日,第 127 屆 ECMA 大會正式批準了 ECMAScript 2024 語言規范,這意味著它現在正式成為最新 ECMAScript 標準。圖片下面就來看看 ECMAScript 2024 都有哪些新特性吧!Promise.withResolvers()Object.group

2024 年 6 月 26 日,第 127 屆 ECMA 大會正式批準了 ECMAScript 2024 語言規范,這意味著它現在正式成為最新 ECMAScript 標準。sny28資訊網——每日最新資訊28at.com

圖片圖片sny28資訊網——每日最新資訊28at.com

下面就來看看 ECMAScript 2024 都有哪些新特性吧!sny28資訊網——每日最新資訊28at.com

  • Promise.withResolvers()
  • Object.groupBy / Map.groupBy
  • String:isWellFormed() / toWellFormed()
  • ArrayBuffer:resize / transfer
  • Atomics.waitAsync()
  • 正則表達式 v 標志

Promise.withResolvers()

Promise.withResolvers() 允許創建一個新的 Promise,并同時獲得 resolve 和 reject 函數。sny28資訊網——每日最新資訊28at.com

Promise.withResolvers() 等同于以下代碼,不過代碼會更簡潔:sny28資訊網——每日最新資訊28at.com

let resolve, reject;const promise = new Promise((res, rej) => {  resolve = res;  reject = rej;});

通常,當創建一個新的 Promise 時,會傳遞一個執行器函數給 Promise 構造函數,這個執行器函數接收兩個參數:resolve 和 reject 。但在某些情況下,可能想要在 Promise 創建之后仍然能夠訪問到這兩個函數。這就是 Promise.withResolvers() 的用武之地。sny28資訊網——每日最新資訊28at.com

使用 Promise.withResolvers() 的例子:sny28資訊網——每日最新資訊28at.com

const { promise, resolve, reject } = Promise.withResolvers();    // 在這里可以使用 resolve 和 reject 函數  setTimeout(() => resolve('成功!'), 8000);    promise.then(value => {    console.log(value); // 輸出: 成功!  });

使用 Promise.withResolvers() 關鍵的區別在于resolve 和 reject函數現在與 Promise 本身處于同一作用域,而不是在執行器中被創建和一次性使用。這可能使得一些更高級的用例成為可能,例如在重復事件中重用它們,特別是在處理流和隊列時。這通常也意味著相比在執行器內包裝大量邏輯,嵌套會更少。這個方法對于那些需要更細粒度控制 Promise 的狀態,或者在 Promise 創建后仍然需要訪問 resolve 和 reject 函數的場景來說非常有用。sny28資訊網——每日最新資訊28at.com

瀏覽器支持:sny28資訊網——每日最新資訊28at.com

圖片圖片sny28資訊網——每日最新資訊28at.com

Object.groupBy() / Map.groupBy()

Object.groupBy() 和 Map.groupBy() 方法用于數組分組。sny28資訊網——每日最新資訊28at.com

假設有一個由表示水果的對象組成的數組,需要按照顏色進行分組。以前可以使用forEach循環來實現,代碼如下:sny28資訊網——每日最新資訊28at.com

const fruits = [    { name: "Apple", color: "red" },    { name: "Banana", color: "yellow" },    { name: "Cherry", color: "red" },    { name: "Lemon", color: "yellow" },    { name: "Grape", color: "purple" },  ];const fruitsByColor = {};  fruits.forEach(fruit => {    const color = fruit.color;    if (!fruitsByColor[color]) {      fruitsByColor[color] = [];    }    fruitsByColor[color].push(fruit);  }); console.log(fruitsByColor);

輸出結果如下:sny28資訊網——每日最新資訊28at.com

圖片圖片sny28資訊網——每日最新資訊28at.com

也可以使用reduce方法:sny28資訊網——每日最新資訊28at.com

const fruitsByColor = fruits.reduce((acc, fruit) => {    const color = fruit.color;    if (!acc[color]) {      acc[color] = [];    }    acc[color].push(fruit);    return acc;  }, {});

無論哪種方式,代碼都略顯繁瑣。每次都要檢查對象,看分組的 key 是否存在,如果不存在,則創建一個空數組,并將項目添加到該數組中。sny28資訊網——每日最新資訊28at.com

Object.groupBy()

可以通過以下方式來使用新的Object.groupBy方法,代碼更簡潔:sny28資訊網——每日最新資訊28at.com

const fruitsByColor = Object.groupBy(fruits, (fruit) => fruit.color);

需要注意,使用Object.groupBy方法返回一個沒有原型(即沒有繼承任何屬性和方法)的對象。這意味著該對象不會繼承Object.prototype上的任何屬性或方法,例如hasOwnProperty或toString等。雖然這樣做可以避免意外覆蓋Object.prototype上的屬性,但也意味著不能使用一些與對象相關的方法。sny28資訊網——每日最新資訊28at.com

const fruitsByColor = Object.groupBy(fruits, (fruit) => fruit.color);console.log(fruitsByColor.hasOwnProperty("red"));// TypeError: fruitsByColor.hasOwnProperty is not a function

在調用Object.groupBy時,傳遞給它的回調函數應該返回一個字符串或 Symbol 類型的值。如果回調函數返回其他類型的值,它將被強制轉換為字符串。sny28資訊網——每日最新資訊28at.com

瀏覽器支持:sny28資訊網——每日最新資訊28at.com

圖片圖片sny28資訊網——每日最新資訊28at.com

Map.groupBy()

Map.groupBy和Object.groupBy的功能一樣,只是返回的結果類型不同。Map.groupBy返回一個 Map 對象,而Object.groupBy返回一個普通對象。sny28資訊網——每日最新資訊28at.com

const fruits = [    { name: "Apple", color: "red" },    { name: "Banana", color: "yellow" },    { name: "Cherry", color: "red" },    { name: "Lemon", color: "yellow" },    { name: "Grape", color: "purple" },  ];const fruitsByColor = Map.groupBy(fruits, (fruit) => fruits.color);

這里根據水果顏色進行了分組,輸出結果如下:sny28資訊網——每日最新資訊28at.com

圖片圖片sny28資訊網——每日最新資訊28at.com

可以通過 Map 的 get 方法來來獲取分組分組結果:sny28資訊網——每日最新資訊28at.com

fruitsByColor.get("red");// [{"name": "Apple", "color": "red"}, {"name": "Cherry", "color": "red"}]

瀏覽器支持:sny28資訊網——每日最新資訊28at.com

String:isWellFormed() / toWellFormed()

String.prototype.isWellFormed()

isWellFormed() 用于檢查一個 UTF-16 編碼的字符串是否包含孤立的代理項(即未與另一個代理項配對的高代理或低代理)。UTF-16使用代理對來表示Unicode中超過基本多文種平面的字符。一個有效的UTF-16字符串應該只包含正確配對的代理對或單獨的BMP字符。sny28資訊網——每日最新資訊28at.com

下面來看一個例子sny28資訊網——每日最新資訊28at.com

const strings = [  // 單獨的前導代理  "ab/uD800",  "ab/uD800c",  // 單獨的后尾代理  "/uDFFFab",  "c/uDFFFab",  // 格式正確  "abc",  "ab/uD83D/uDE04c",];for (const str of strings) {  console.log(str.isWellFormed());}// 輸出:// false// false// false// false// true// true

如果傳遞的字符串格式不正確, encodeURI 會拋出錯誤??梢酝ㄟ^使用 isWellFormed() 在將字符串傳遞給 encodeURI() 之前測試字符串來避免這種情況。sny28資訊網——每日最新資訊28at.com

const illFormed = "https://example.com/search?q=/uD800";try {  encodeURI(illFormed);} catch (e) {  console.log(e); // URIError: URI malformed}if (illFormed.isWellFormed()) {  console.log(encodeURI(illFormed));} else {  console.warn("Ill-formed strings encountered."); // Ill-formed strings encountered.}

isWellFormed() 函數的使用場景主要包括以下幾種情況:sny28資訊網——每日最新資訊28at.com

  • 數據驗證:當你從外部源(如用戶輸入、文件、網絡請求等)接收字符串時,你可能想要驗證這些字符串是否包含有效的UTF-16編碼。如果字符串包含孤立的代理項(即沒有配對的高代理或低代理),那么它可能不是有效的UTF-16字符串,這可能會導致后續處理時出錯。
  • 文本處理:在處理文本數據(如搜索、排序、轉換等)時,確保文本是有效編碼的非常重要。如果文本包含錯誤的編碼,那么處理結果可能會是不正確的或不可預測的。
  • 網絡傳輸:當你通過網絡發送或接收文本數據時,確保數據的編碼是正確的至關重要。錯誤的編碼可能導致數據在傳輸過程中被損壞,或者在接收端無法正確解析。
  • 數據庫存儲:在將文本數據存儲到數據庫之前,驗證其編碼的正確性也是一個好習慣。這可以確保數據的完整性和可讀性,并避免在后續查詢或處理時出現問題。
  • 用戶界面顯示:在用戶界面中顯示文本時,確保文本是有效編碼的也很重要。錯誤的編碼可能導致文本無法正確顯示,或者顯示出不正確的字符。

瀏覽器支持:sny28資訊網——每日最新資訊28at.com

圖片圖片sny28資訊網——每日最新資訊28at.com

String.prototype.toWellFormed()

toWellFormed() 方法返回一個字符串,其中該字符串的所有單獨代理項都被替換為 Unicode 替換字符 U+FFFD。sny28資訊網——每日最新資訊28at.com

toWellFormed() 迭代字符串的碼元,并將任何單獨代理項替換為 Unicode 替換字符 U+FFFD。這確保了返回的字符串格式正確并可用于期望正確格式字符串的函數,比如 encodeURI。由于引擎能夠直接訪問字符串的內部表示,與自定義實現相比 toWellFormed() 更高效。sny28資訊網——每日最新資訊28at.com

const strings = [  // 單獨的前導代理  "ab/uD800",  "ab/uD800c",  // 單獨的后尾代理  "/uDFFFab",  "c/uDFFFab",  // 格式正確  "abc",  "ab/uD83D/uDE04c",];for (const str of strings) {  console.log(str.toWellFormed());}// 輸出:// "ab?"http:// "ab?c"http:// "?ab"http:// "c?ab"http:// "abc"http:// "ab 
                

本文鏈接:http://m.www897cc.com/showinfo-26-97282-0.htmlECMAScript 2024 正式發布,新特性一覽!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 如何獲取請求的進度,并展示給用戶看?

下一篇: 工程化視角的 Kotlin Multiplatform 核心解讀及優化

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
国产精品久久久久久久app| 久久久久国产精品www| 99re国产精品| 亚洲午夜激情网页| 亚洲女性喷水在线观看一区| 欧美在线视频一区二区三区| 麻豆精品91| 欧美日韩精品免费观看视频| 欧美午夜精品久久久久久超碰| 国产精品久久久久久久久免费桃花| 国产欧美日韩一区二区三区在线 | 国产婷婷色综合av蜜臀av| 狠狠入ady亚洲精品经典电影| 最新国产成人av网站网址麻豆| 亚洲国产日韩欧美在线图片 | 欧美一级专区| 欧美丰满高潮xxxx喷水动漫| 国产精品久久久久久久久免费 | 国产一区二区三区在线观看免费| 亚洲国产专区| 亚洲欧美日韩国产综合在线| 美国十次了思思久久精品导航| 欧美天堂在线观看| 在线观看欧美成人| 亚洲系列中文字幕| 久久在线精品| 国产精品成人一区| 亚洲国产成人久久| 午夜亚洲精品| 欧美日韩一区二区三区免费| 精品1区2区| 亚洲一区视频| 欧美激情网友自拍| 黑人一区二区| 亚洲一区免费网站| 欧美激情精品久久久久久久变态 | 国产精品一区二区久激情瑜伽| 亚洲国产网站| 久久国产黑丝| 国产精品久久久久一区二区三区| 亚洲欧洲日韩女同| 久久精品一二三区| 国产精品入口尤物| 亚洲精品乱码久久久久久黑人| 久久精品99国产精品| 国产精品成人va在线观看| 亚洲黄网站在线观看| 久久精品国产亚洲a| 国产精品久久久久高潮| 91久久精品国产91久久| 久久久噜噜噜久久人人看| 国产精品日韩欧美一区| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲欧美日韩人成在线播放| 欧美日韩国产高清| 亚洲国产导航| 久久婷婷麻豆| 国产亚洲综合在线| 亚洲欧美日韩综合aⅴ视频| 欧美日韩精品| 亚洲精品欧美一区二区三区| 久久综合狠狠综合久久激情| 国产一区自拍视频| 欧美亚洲综合网| 国产精品日韩电影| 亚洲手机视频| 欧美视频在线观看一区| 99国内精品| 欧美日韩高清不卡| 亚洲免费成人| 欧美精选一区| 日韩视频―中文字幕| 欧美国产日韩一二三区| 亚洲黄网站黄| 欧美电影免费观看高清| 亚洲激情小视频| 欧美激情按摩在线| 亚洲精品日韩激情在线电影| 欧美粗暴jizz性欧美20| 亚洲激情电影在线| 欧美va亚洲va香蕉在线| 亚洲国产一区二区a毛片| 女同一区二区| 亚洲欧洲在线看| 欧美劲爆第一页| 99re视频这里只有精品| 欧美日韩亚洲综合| 亚洲深夜福利在线| 国产精品久久久99| 午夜影院日韩| 国产一区二区三区观看| 久久精视频免费在线久久完整在线看| 国内精品久久久久久久影视麻豆 | 国产视频丨精品|在线观看| 欧美一区二视频在线免费观看| 国产三级欧美三级| 久久久久久穴| 亚洲国产黄色| 欧美日韩国产成人在线| 亚洲天堂偷拍| 国产欧美一区二区三区沐欲| 久久久高清一区二区三区| 亚洲成色777777在线观看影院| 欧美高清视频在线播放| 一本久道久久综合中文字幕| 欧美特黄视频| 欧美一区二区三区免费视| 一区二区三区亚洲| 欧美成人午夜剧场免费观看| 日韩亚洲欧美高清| 国产精品久久久久久久久久免费看 | 午夜精品一区二区三区在线| 国产真实乱偷精品视频免| 老司机成人网| 亚洲免费成人av电影| 国产精品高潮呻吟久久av无限| 午夜一区二区三区在线观看| 狠狠色狠狠色综合日日小说| 欧美黑人国产人伦爽爽爽| 亚洲天堂成人在线视频| 国产一区日韩一区| 欧美人与禽猛交乱配视频| 亚洲欧美日韩电影| 在线观看视频免费一区二区三区| 欧美裸体一区二区三区| 香港久久久电影| 亚洲高清资源| 国产精品久久999| 久久久久国色av免费看影院| 亚洲精品久久久久久下一站| 国产精品男女猛烈高潮激情| 久久久在线视频| 日韩一区二区久久| 国产日韩在线播放| 欧美国产精品久久| 亚洲综合视频1区| 在线日本欧美| 国产精品日日摸夜夜摸av| 久久综合色播五月| 亚洲一区图片| 精品成人在线| 国产精品ⅴa在线观看h| 久久综合九色99| 亚洲一区日韩| 亚洲欧洲视频| 国产日韩专区在线| 欧美午夜激情视频| 美女在线一区二区| 亚洲欧美日韩精品久久亚洲区| 亚洲欧洲视频| 国产一区二区毛片| 欧美先锋影音| 欧美ed2k| 久久精品中文字幕一区| 亚洲美女少妇无套啪啪呻吟| 国产在线观看一区| 国产精品v欧美精品v日韩 | 性欧美xxxx大乳国产app| 91久久久亚洲精品| 国产自产2019最新不卡| 国产精品成人免费| 欧美国产日韩精品| 久久久最新网址| 欧美一区二区三区四区夜夜大片| 99精品免费视频| 亚洲国产精品123| 韩国三级电影一区二区| 国产精品午夜av在线| 欧美日韩国产不卡| 男女激情视频一区| 久久久夜夜夜| 欧美在线三区| 亚洲伊人久久综合| 日韩一区二区免费高清| 亚洲国产婷婷综合在线精品 | 香蕉久久久久久久av网站| 一本久久知道综合久久| 亚洲国产婷婷| 亚洲成人在线网站| 韩国免费一区| 国产在线拍揄自揄视频不卡99| 国产精品视频区| 国产精品家教| 欧美日韩亚洲在线| 欧美精品日本| 欧美国产成人在线| 欧美刺激性大交免费视频| 噜噜噜躁狠狠躁狠狠精品视频| 久久精品国产清自在天天线| 午夜久久福利| 午夜精品偷拍| 性娇小13――14欧美| 午夜精品久久久久久久久久久| 亚洲一区免费| 亚洲综合色网站| 亚洲欧美国产精品桃花| 亚洲视频欧美视频| 一区二区三区 在线观看视| 日韩一级免费| 一区二区三区蜜桃网| 一本色道久久综合一区| 亚洲视频999| 亚洲小说欧美另类社区| 亚洲在线电影|