ECMAScript 2020
JavaScript 版本号
旧的 JS 版本以数字命名:ES5 (2009) 和 ES6 (2015)。
从 2016 年开始,版本按年份命名:ECMAScript 2016、2017、2018、2019、...
ES2020 中的新特性:
- BigInt
- 字符串方法 matchAll()
- 空值合并运算符 (??)
- 可选链运算符 (?.)
- 逻辑 AND 赋值运算符 (&&=)
- 逻辑 OR 赋值运算符 (||=)
- 空值合并赋值运算符 (??=)
- Promise.allSettled()
- 动态导入
警告
这些特性相对较新。
较旧的浏览器可能需要替代代码(Polyfill)。
ตัวแปร BigInt JavaScript
JavaScript BigInt 变量用于存储太大而无法用普通 JavaScript 数字表示的大整数值。
JavaScript 整数最多只能精确到 15 位数字。
Integer 实例
let x = 999999999999999; let y = 9999999999999999; // 太大
BigInt 实例
let x = 9999999999999999; let y = 9999999999999999n;
如需创建 BigInt,请将 n
附加到整数末尾或调用 BigInt():
ইনস্ট্যান্স
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345)
BigInt 的 JavaScript 类型是 "bigint":
ইনস্ট্যান্স
let x = BigInt(999999999999999); let type = typeof x;
自 2020 年 9 月以来,所有现代浏览器都支持 BigInt:
চ্রোম | এডজ | ফায়ারফক্স | স্যাফারি | ওপেরা |
---|---|---|---|---|
Chrome 67 | এডজ ৭৯ | ফায়ারফক্স ৬৮ | স্যাফারি ১৪ | অপেরা ৫৪ |
২০১৮ সালের ৫ই মে | ২০২০ সালের ১লা | ২০১৯ সালের ৭ই জুলাই | ২০২০ সালের ৯ সেপ্টেম্বর | ২০১৮ সালের ৬ই জুন |
জেভাস্ক্রিপ্ট স্ট্রিং মেথড ম্যাচঅল
ES2020-র পূর্বে, স্ট্রিংগুলিতে সমস্ত প্রকাশকে অনুসন্ধান করার জন্য কোনও স্ট্রিং মেথড ছিল না
ইনস্ট্যান্স
const iterator = text.matchAll("Cats");
যদি পারামিটার একটি রেগুলার এক্সপ্রেশনg
) না হলে TypeError ফেলবে
ইনস্ট্যান্স
const iterator = text.matchAll(/Cats/g);
যদি অসমানলিপির অনুসন্ধান করতে হয়, তবে অসমানলিপির সংকেত সংযোজিত করতে হবে (i
):
ইনস্ট্যান্স
const iterator = text.matchAll(/Cats/gi);
সুপারিশ:ES2021 replaceAll() স্ট্রিং মেথড উপস্থাপন করা হয়েছে
খালি মান মেলবন্ধন অপারেটর (খালি মান মেলবন্ধন অপারেটর) (?? অপারেটর)
যদি প্রথম পারামিটার খালি মান নয়null
অথবা undefined
),তবে ??
অপারেটর প্রথম পারামিটারকে ফিরিয়ে দেয়
তবে দ্বিতীয়টি ফিরিয়ে দেয়
ইনস্ট্যান্স
let name = null; let text = "missing"; let result = name ?? text;
২০২০ সালের ৩য় মাস থেকে, সমস্ত আধুনিক ব্রাউজারগুলি nullish অপারেটরকে সমর্থন করে
চ্রোম | এডজ | ফায়ারফক্স | স্যাফারি | ওপেরা |
---|---|---|---|---|
চ্রোম ৮০ | এডজ ৮০ | ফায়ারফক্স ৭২ | স্যাফারি ১৩.১ | অপেরা ৬৭ |
2020 সালের ২য় মাস | 2020 সালের ২য় মাস | ২০২০ সালের ১লা | ২০২০ সালের ৩ মার্চ | ২০২০ সালের ৩ মার্চ |
ওপশনাল চেইনিং অপারেটর (অপশনাল চেইনিং অপারেটর) (?. অপারেটর)
যদি অবজেক্ট undefined
অথবা null
তবেওপশনাল চেইনিং অপারেটরফিরিয়ে দেয় undefined
(নিজের ভুল দিয়ে না ফেলে)。
ইনস্ট্যান্স
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
২০২০ সালের ৩য় মাস থেকে, সমস্ত আধুনিক ব্রাউজারগুলি সমর্থন করে ?.=
অপারেটর:
চ্রোম | এডজ | ফায়ারফক্স | স্যাফারি | ওপেরা |
---|---|---|---|---|
চ্রোম ৮০ | এডজ ৮০ | ফায়ারফক্স ৭৪ | স্যাফারি ১৩.১ | অপেরা ৬৭ |
2020 সালের ২য় মাস | 2020 সালের ২য় মাস | ২০২০ সালের ৩ মার্চ | ২০২০ সালের ৩ মার্চ | ২০২০ সালের ৩ মার্চ |
লজিক্যাল AND অ্যাসাইনমেন্ট আপস (&&= আপস)
লজিক্স এন্ড অ্যাসাইনমেন্ট অপারেটরদুই মানের মধ্যে ব্যবহৃত
যদি প্রথম মান true
তবে, দ্বিতীয় মান এসকল করা হবে。
লজিক্স এন্ড অ্যাসাইনমেন্ট ইনস্ট্যান্স
let x = 100; x &&= 5;
২০২০ সালের ৯ সেপ্টেম্বর থেকে, সমস্ত আধুনিক ব্রাউজারগুলি এটি সমর্থন করে &&=
অপারেটর:
চ্রোম | এডজ | ফায়ারফক্স | স্যাফারি | ওপেরা |
---|---|---|---|---|
চ্রোম ৮৫ | এডজ ৮৫ | ফায়ারফক্স ৭৯ | স্যাফারি ১৪ | ওপেরা ৭১ |
২০২০ সালের ৮ আগস্ট | ২০২০ সালের ৮ আগস্ট | ২০২০ সালের ৩ মার্চ | ২০২০ সালের ৯ সেপ্টেম্বর | ২০২০ সালের ৯ সেপ্টেম্বর |
লজিক্স অর অ্যাসাইনমেন্ট অপারেটর (||= অপারেটর)
লজিক্স অর অ্যাসাইনমেন্ট অপারেটরদুই মানের মধ্যে ব্যবহৃত
যদি প্রথম মান false
তবে, দ্বিতীয় মান এসকল করা হবে。
লজিক্স অর অ্যাসাইনমেন্ট ইনস্ট্যান্স
let x = 10; x ||= 5;
২০২০ সালের ৯ সেপ্টেম্বর থেকে, সমস্ত আধুনিক ব্রাউজারগুলি এটি সমর্থন করে ||=
অপারেটর:
চ্রোম | এডজ | ফায়ারফক্স | স্যাফারি | ওপেরা |
---|---|---|---|---|
চ্রোম ৮৫ | এডজ ৮৫ | ফায়ারফক্স ৭৯ | স্যাফারি ১৪ | ওপেরা ৭১ |
২০২০ সালের ৮ আগস্ট | ২০২০ সালের ৮ আগস্ট | ২০২০ সালের ৩ মার্চ | ২০২০ সালের ৯ সেপ্টেম্বর | ২০২০ সালের ৯ সেপ্টেম্বর |
খালি মান মেলবন্ধন অ্যাসাইনমেন্ট আপস(??= আপস)
খালি মান মেলবন্ধন অ্যাসাইনমেন্ট আপস(Nullish Coalescing Assignment Operator)দুই মানের মধ্যে ব্যবহৃত হয়
যদি প্রথম মান undefined
বা null
তবে, দ্বিতীয় মান এসকল করা হবে。
খালি মান মেলবন্ধন অ্যাসাইনমেন্ট ইনস্ট্যান্স
let x = 10; x ??= 5;
২০২০ সালের ৯ সেপ্টেম্বর থেকে, সমস্ত আধুনিক ব্রাউজারগুলি এটি সমর্থন করে ??=
অপারেটর:
চ্রোম | এডজ | ফায়ারফক্স | স্যাফারি | ওপেরা |
---|---|---|---|---|
চ্রোম ৮৫ | এডজ ৮৫ | ফায়ারফক্স ৭৯ | স্যাফারি ১৪ | ওপেরা ৭১ |
২০২০ সালের ৮ আগস্ট | ২০২০ সালের ৮ আগস্ট | ২০২০ সালের ৩ মার্চ | ২০২০ সালের ৯ সেপ্টেম্বর | ২০২০ সালের ৯ সেপ্টেম্বর |