ECMAScript 2020
Namba ya versioni ya JavaScript
Barani za JS za zamani zinaingia kwa namba: ES5 (2009) na ES6 (2015).
Kuanza kutoka 2016, versioni zinaingia kwa machi: ECMAScript 2016, 2017, 2018, 2019, ...
Mafanikio ya ES2020:
- BigInt
- Method ya string matchAll()
- Operator ya kusamehua na ukinga vya kawaida (??)
- Operator ya ujenzi wa optional chaining (?.)
- Operator ya ujenzi wa logical AND (&&=)
- Operator ya ujenzi wa logical OR (||=)
- Operator ya kusamehua na ukinga vya kawaida (??=)
- Promise.allSettled()
- Kuingia kwa urahisi
Kulangia
Mafanikio haya ni mpya sana.
Barani za kufikia zamani inayoweza kutumika kwa programu za mawasiliano (Polyfill).
BigInt ya JavaScript
Variabali za BigInt za JavaScript zinaongea tabia za inani kubwa zaidi ya inauonekana kwa inani za JavaScript za kawaida.
Inani la JavaScript kinakadhibiti hadi watano wa namba 15.
Mfano wa inani
let x = 999999999999999; let y = 9999999999999999; // Kwa ukubwa sana
Mfano wa BigInt
let x = 9999999999999999; let y = 9999999999999999n;
Kuondoa BigInt, tafadhali ingia: n
Ongeza kwenye mawasiliano ya inani au tafadhali ingia BigInt():
Mfano
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345)
Tuhumu ya JavaScript ya BigInt ni "bigint":
Mfano
let x = BigInt(999999999999999); let type = typeof x;
Kuanza kwa Septemba 2020, barani zote za kifunzi kinaonyesha BigInt:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
Mai 2018 | Januari 2020 | Julai 2019 | Mwezi wa Septemba 2020 | Juni 2018 |
Method ya string ya JavaScript matchAll()
Kwenye ES2020 hataa, hakuna method ya string ambayo inaweza kutafuta uadilifu wa msingi zote katika string.
Mfano
const iterator = text.matchAll("Cats");
Kama para ni uadilifu wa msingi, inafaa kubadilisha nguvu ya kina (g
) na wengine hatutakiwa kuwaanza kusababisha kosa TypeError.
Mfano
const iterator = text.matchAll(/Cats/g);
Kama ungependa kutafuta kwa nguvu ya kina, inafaa kubadilisha nguvu ya kina (i
)
Mfano
const iterator = text.matchAll(/Cats/gi);
Matokeo:ES2021 Inakusanya method ya string replaceAll().
Operator wa kusambatia thamani zingine (Nullish Coalescing Operator) (operator ??)
Kama para ya kwanza haikuwa thamani yako hataa (null
au undefined
ni ??
Operator inatoa para ya kwanza.
inaonyesha ujumbe wa pili.
Mfano
let name = null; let text = "missing"; let result = name ?? text;
Kuanzia Machi 2020, tabia zote za kifaa kinaonyesha operator ya nullish:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
Februari 2020 | Februari 2020 | Januari 2020 | Mwezi wa Machi 2020 | Mwezi wa Machi 2020 |
Operator wa ukiafu (Optional Chaining Operator) (operator ?.)
Kama kifaa ni undefined
au null
niOperator wa ukiafuInatoa undefined
(hataa kusababisha kosa).
Mfano
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
Kuanzia Machi 2020, tabia zote za kifaa kinaonyesha operator ya nullish ?.=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
Februari 2020 | Februari 2020 | Mwezi wa Machi 2020 | Mwezi wa Machi 2020 | Mwezi wa Machi 2020 |
Operator ya uharibifu wa logiki uletengana (&&= operator)
Operator wa kifanyike kwa ANDinaonyesha kati ya ujumbe mbili.
Kama ujumbe wa kwanza ni True
hatau, kuingiza ya chaguo ya pili.
Mfano wa kifanyike kwa AND
let x = 100; x &&= 5;
Kuanzia Septemba 2020, tabia zote za kina za barabara zinaonyesha &&=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Mwezi wa Agosti 2020 | Mwezi wa Agosti 2020 | Mwezi wa Machi 2020 | Mwezi wa Septemba 2020 | Mwezi wa Septemba 2020 |
Operator wa kifanyike kwa OR (operator ||=)
Operator wa kifanyike kwa ORinaonyesha kati ya ujumbe mbili.
Kama ujumbe wa kwanza ni False
hatau, kuingiza ya chaguo ya pili.
Mfano wa kifanyike kwa OR kwa uagiza
let x = 10; x ||= 5;
Kuanzia Septemba 2020, tabia zote za kina za barabara zinaonyesha ||=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Mwezi wa Agosti 2020 | Mwezi wa Agosti 2020 | Mwezi wa Machi 2020 | Mwezi wa Septemba 2020 | Mwezi wa Septemba 2020 |
Operator wa kusamehua wa mawazo haujazidi (??= operator)
Operator wa kusamehua wa mawazo haujazidikwa uharibifu wa mawazo haujazidi wa kusamehua wa mawazo (Nullish Coalescing Assignment Operator) kati ya maadili.
kama chaguo cha kwanza undefined
au null
hatau, kuingiza ya chaguo ya pili.
Mfano wa kusamehua wa mawazo haujazidi wa kusamehua wa mawazo
let x = 10; x ??= 5;
Kuanzia Septemba 2020, tabia zote za kina za barabara zinaonyesha ??=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Mwezi wa Agosti 2020 | Mwezi wa Agosti 2020 | Mwezi wa Machi 2020 | Mwezi wa Septemba 2020 | Mwezi wa Septemba 2020 |