ES2020 All in One


ES2020 All in One

ES2020 new features / ES11

ES2020 中的10個新功能

1. BigInt

BigInt是JavaScript中最令人期待的功能之一,終於來了。實際上,它允許開發人員在其JS代碼中使用更大的整數表示形式進行數據處理和數據處理。

2. Dynamic import

JavaScript中的動態導入使您可以選擇將JS文件作為模塊自然地動態導入應用程序中。就像您當前使用Webpack和Babel進行操作一樣。

3. Nullish Coalescing

空值合並增加了真正檢查空值而不是假值的能力。您可能會問,空值和假值之間有什么區別?

在JavaScript中,很多值都是false,例如空字符串,數字0,未定義,null,false,NaN等。

但是,很多時候您可能想檢查一個變量是否為空-即它是未定義還是為null,例如當變量可以為空字符串甚至是假值時就可以了。

4. Optional Chaining

可選的鏈接語法使您可以訪問深度嵌套的對象屬性,而不必擔心該屬性是否存在。如果存在,那就太好了!如果不是,將返回undefined。

5. Promise.allSettled

Promise.allSettled方法接受一個Promises數組,並且僅在所有這些Promises都已解決時才解決-解析或拒絕。

6. String#matchAll

matchAll是添加到String原型的新方法,該方法與正則表達式相關。這將返回一個迭代器,該迭代器一個接一個地返回所有匹配的組。

7. globalThis

如果您編寫了一些跨平台的JS代碼,這些代碼可以在Node上,瀏覽器環境中以及在Web工作人員內部運行,那么您將很難掌握全局對象。

這是因為它是瀏覽器的窗口,是Node的全局窗口,是web worker的self。如果運行時更多,則全局對象也將有所不同。

8. Module Namespace Exports

在JavaScript模塊中,已經可以使用以下語法:

但是,到目前為止,還沒有對稱的導出語法:

9. Well defined for-in order

ECMA規范未指定(x in y)應按哪個順序運行。即使以前瀏覽器自己實現了一致的順序,但ES2020中已將其正式標准化。

10. import.meta

import.meta對象是由ECMAScript實現創建的,具有空原型。

結論

我喜歡JavaScript社區不斷發展和發展的一致性和速度。
看到JavaScript如何從經過十年的噓聲變成如今有史以來最強大,最靈活和通用性最強的語言之一,真是太神奇了,真是太棒了。

ES2020

globalThis


globalThis === window;
// true

globalThis === global;
// true


globalThis =
 Object [global] {
  global: [Circular],
  clearInterval: [Function: clearInterval],
  clearTimeout: [Function: clearTimeout],
  setInterval: [Function: setInterval],
  setTimeout: [Function: setTimeout] {
    [Symbol(nodejs.util.promisify.custom)]: [Function]
  },
  queueMicrotask: [Function: queueMicrotask],
  clearImmediate: [Function: clearImmediate],
  setImmediate: [Function: setImmediate] {
    [Symbol(nodejs.util.promisify.custom)]: [Function]
  }
}
global =
 Object [global] {
  global: [Circular],
  clearInterval: [Function: clearInterval],
  clearTimeout: [Function: clearTimeout],
  setInterval: [Function: setInterval],
  setTimeout: [Function: setTimeout] {
    [Symbol(nodejs.util.promisify.custom)]: [Function]
  },
  queueMicrotask: [Function: queueMicrotask],
  clearImmediate: [Function: clearImmediate],
  setImmediate: [Function: setImmediate] {
    [Symbol(nodejs.util.promisify.custom)]: [Function]
  }
}


refs

https://xie.infoq.cn/article/5887705e51a51af8b2781a8d3

https://alligator.io/js/es2020/

https://www.freecodecamp.org/news/javascript-new-features-es2020/

https://www.telerik.com/blogs/latest-features-javascript-ecmascript-2020


Flag Counter

©xgqfrms 2012-2020

www.cnblogs.com 發布文章使用:只允許注冊用戶才可以訪問!



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM