ECMAScript 2020
JavaScript ဘရပ်သီးအမည်
အခြေခံ JS အမည်တွင် အရေးပါသော အမည်တွင် အမည်ပေးခြင်းဖြစ်သည်: ES5 (2009) နှင့် ES6 (2015):
2016 ခုနှစ် မှ စတင်၍ အဆိုပါ ဘရပ်သီးတို့ ကို နှစ်ခုစလုံး အမည်တွင် အမည်ပေးခြင်းဖြစ်သည်: ECMAScript 2016、2017、2018、2019、...
ES2020 တွင် အခြေခံ အကျဉ်းချုပ်:
- BigInt
- စကားရပ် အမှုထမ်း matchAll()
- ခွင့်မပြုသေးသော အကြောင်းရပ် ပေါင်းစုပေါင်း (??)
- အခွင့်မပြုသေးသော အကြောင်းရပ် ပေါင်းစုပေါင်း (?.)
- အလိုရှိသော အကြောင်းရပ် ပေါင်းစုပေါင်း သဘောတူညီခြင်း (&&=)
- အလိုရှိသော အကြောင်းရပ် ပေါင်းစုပေါင်း သဘောတူညီခြင်း (||=)
- ခွင့်မပြုသေးသော အကြောင်းရပ် ပေါင်းစုပေါင်း ချင်း သဘောတူညီခြင်း (??=)
- Promise.allSettled()
- လက်လွှမ်းသုံး အရေးပါသော ဘရပ်သီး
အကြောင်းပြချက်
အခြေခံ အကျဉ်းချုပ် သည် အခြေခံ ဘရပ်သီးတို့ ကို ထောက်ပံ့သည်:
အကျဉ်းချုပ်သော ဘရပ်သီးတို့ အားလုံး အစိတ်အပိုင်းခွဲသင်္ကေတ်တို့ကို အသုံးပြုသင့်မည်:
JavaScript BigInt
JavaScript BigInt အလိုရှိသည် အရေးပါသည့် အကွက် အရှိုးအသား ကို ကျယ်ပြီး အရေးပါသည့် JavaScript အရေးပါသော အကွက် အရှိုးအသား ကို ထိန်းချုပ်ရန် သုံးစွဲသည်:
JavaScript အရေးပါသော အကယ်၍ အရေးပါသည့် အကွက် အရှိုးအသား ကို အရေးပါသည့် ၁၅ လုံး သာ ချဲ့နိုင်သည်:
Integer အမှုထမ်း
let x = 999999999999999; let y = 9999999999999999; // အကြီးသည်
BigInt အမှုထမ်း
let x = 9999999999999999; // အကြီးသည် let y = 9999999999999999n;
BigInt ကို ဖန်တီးရန် အရေးပါသည့် ကျောင်းသား ကို BigInt() ကို ခေါ်ဆိုခြင်း: n
အရေးပါသည့် အကယ်၍ BigInt ကို ဖန်တီးရန် ကျောင်းသား ကို နောက်ခံသင်္ကေတ်တို့သို့ ထပ်လျက်ချက်ပေးခြင်းဖြစ်သည်:
အမျိုးမျိုး
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
BigInt ရှိ JavaScript အမျိုးအစား "bigint" ဖြစ်သည်:
အမျိုးမျိုး
let x = BigInt(999999999999999); let type = typeof x;
နှစ် 2020 မေ လ မှ စတင်၍ အသုံးချီးသော ဘရပ်သီးတို့ အားလုံး ပါဝင်သည် BigInt ကို ထောက်ပံ့သည်:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
2018 ခုနှစ် 5 လ | 2020 ခုနှစ် 1 လ | 2019 ခုနှစ် 7 လ | 2020 年 9 月 | 2018 ခုနှစ် 6 လ |
ဂျပ်တာ ကျော်ဖြတ် အမှတ်အသား အမျိုးမျိုး
ES2020 အခြား အတ္ထုပါ ဘာသာစကား အား အကြောင်း အရာ အား ရှာဖွေ လုပ်ဆောင် ရန် အသုံးပြု သည် မဟုတ်
အမျိုးမျိုး
const iterator = text.matchAll("Cats");
အရာg
),အခြား အခါ TypeError ဖြစ်ပေါ်လာမည်
အမျိုးမျိုး
const iterator = text.matchAll(/Cats/g);
အကြောင်းကို အခြေခံ အသုံးပြု သော အရာi
):
အမျိုးမျိုး
const iterator = text.matchAll(/Cats/gi);
အဆိုပါES2021 replaceAll() စကားလုံး ပြောင်းလဲသည် အထဲသို့ ပြန်လည်ပေးသည်
အမြဲမမှု ပေါင်းစပ်လိမ့်မည် အထုတ်အချက် (Nullish Coalescing Operator) (?? အထုတ်အချက်)
ပထမ အတ္ထုပါ အကြောင်းnull
အကြောင်း undefined
),အခြား ??
အထုတ်အချက် ပြန်လည်သတင်း
အခြား ပြန်လည်သတင်း
အမျိုးမျိုး
let name = null; let text = "missing"; let result = name ?? text;
2020 ခုနှစ် 3 လ ကတည်းက အဆိုပါ အတ္ထုပါ ဘာသာစကား အား nullish အထုတ်အချက် ပေးသည်
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
2020 ခုနှစ် 2 လ | 2020 ခုနှစ် 2 လ | 2020 ခုနှစ် 1 လ | 2020 年 3 月 | 2020 年 3 月 |
အတွက်ကျေးဇူးဆိုင်ရာ အထုတ်အချက် (Optional Chaining Operator) (?. အထုတ်အချက်)
အရာ undefined
အကြောင်း null
သို့မဟုတ်အတွက်ကျေးဇူးဆိုင်ရာ အထုတ်အချက်ပြန်လည်သတင်း undefined
(အကြမ်းဖတ် အမှား ဖြစ်ပေါ်လာမည် မဟုတ်)
အမျိုးမျိုး
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
2020 ခုနှစ် 3 လ ကတည်းက အဆိုပါ အတ္ထုပါ ဘာသာစကား အား အကူအညီပေးသည် ?.=
运算符:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
2020 ခုနှစ် 2 လ | 2020 ခုနှစ် 2 လ | 2020 年 3 月 | 2020 年 3 月 | 2020 年 3 月 |
လက်ဆုံး လက်ဆုံး လက်ဆုံး လက်ဆုံး လက်ဆုံး
အကြောင်း AND တိုးပေးလိမ့်မည် အထုတ်အချက်နှစ်ခု အကြောင်း အကြားသို့ အသုံးပြုသည်。
ပထမဆုံး အတ္ထုပါ အကြောင်း true
,则分配第二个值。
အကြောင်း AND တိုးပေးလိမ့်မည် အမျိုးမျိုး
let x = 100; x &&= 5;
自 2020 年 9 月以来,所有现代浏览器都支持 &&=
运算符:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
2020 年 8 月 | 2020 年 8 月 | 2020 年 3 月 | 2020 年 9 月 | 2020 年 9 月 |
အကြောင်း OR တိုးပေးလိမ့်မည် အထုတ်အချက် (||= အထုတ်အချက်)
အကြောင်း OR တိုးပေးလိမ့်မည် အထုတ်အချက်နှစ်ခု အကြောင်း အကြားသို့ အသုံးပြုသည်。
ပထမဆုံး အတ္ထုပါ အကြောင်း false
,则分配第二个值。
အကြောင်း OR တိုးပေးလိမ့်မည်
let x = 10; x ||= 5;
自 2020 年 9 月以来,所有现代浏览器都支持 ||=
运算符:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
2020 年 8 月 | 2020 年 8 月 | 2020 年 3 月 | 2020 年 9 月 | 2020 年 9 月 |
空值合并赋值运算符(??= 运算符)
空值合并赋值运算符(Nullish Coalescing Assignment Operator)用于两个值之间。
如果第一个值 undefined
或为 null
,则分配第二个值。
空值合并赋值实例
let x = 10; x ??= 5;
自 2020 年 9 月以来,所有现代浏览器都支持 ??=
运算符:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
2020 年 8 月 | 2020 年 8 月 | 2020 年 3 月 | 2020 年 9 月 | 2020 年 9 月 |