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
©xgqfrms 2012-2020
www.cnblogs.com 發布文章使用:只允許注冊用戶才可以訪問!