ECMAScript 2020
شماره نسخه JavaScript
نسخههای قدیمی JavaScript با نام عددی نامگذاری میشوند: ES5 (2009) و ES6 (2015).
از سال 2016، نسخهها با نام سال نامگذاری میشوند: ECMAScript 2016، 2017، 2018، 2019، ...
ویژگیهای جدید ES2020:
- BigInt
- مетод زنجیرهای matchAll()
- عملگر ترکیب مقادیر خالی (??)
- عملگر زنجیرهای انتخابی (?.)
- عملگر AND مقادیر (&&=)
- عملگر OR مقادیر (||=)
- عملگر ترکیب مقادیر خالی (??=)
- Promise.allSettled()
- ورود پویا
اخطار
این ویژگیها نسبتاً جدید هستند.
مرورگرهای قدیمی ممکن است نیاز به کد جایگزین (Polyfill) داشته باشند.
BigInt در JavaScript
متغیرهای BigInt JavaScript برای ذخیره اعداد صحیح بزرگ استفاده میشوند که نمیتوانند با اعداد معمولی 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);
نوع JavaScript برای BigInt "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 | ژانویه 2020 | جولای 2019 | سپتامبر 2020 | ژوئن 2018 |
JavaScript روش string matchAll()
قبل از ES2020، هیچ روشی برای جستجوی تمام موارد یک عبارت در یک رشته وجود نداشت.
مثال
const iterator = text.matchAll("Cats");
اگر پارامتر یک نمونه عبارت منظم است، باید علامت کلی را تنظیم کنید (g
)، در غیر این صورت TypeError پرتاب خواهد شد.
مثال
const iterator = text.matchAll(/Cats/g);
اگر میخواهید جستجوی غیرحساس به حروف بزرگ و کوچک انجام دهید، باید علامت غیرحساس به حروف بزرگ و کوچک را تنظیم کنید (i
)
مثال
const iterator = text.matchAll(/Cats/gi);
توجه:ES2021 مетод string replaceAll() معرفی شد.
عملیات ترکیب خالی (Nullish Coalescing Operator) (عملیات ??)
اگر اولین پارامتر ارزش خالی نداشته باشد (null
یا undefined
)، پس ??
این عملیات مقدار اولین پارامتر را بازگرداند.
در غیر این صورت، مقدار دوم را بازگرداند.
مثال
let name = null; let text = "missing"; let result = name ?? text;
از مارس 2020 به بعد، تمام مرورگرهای مدرن از عملیات nullish پشتیبانی میکنند:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
فوریه 2020 | فوریه 2020 | ژانویه 2020 | مارس 2020 | مارس 2020 |
عملیات زنجیرهای انتخابی (Optional Chaining Operator) (عملیات?.)
اگر اشیاء undefined
یا null
، پسعملیات زنجیرهای انتخابیبازگرداند undefined
به جای اینکه خطا بیندازد).
مثال
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
از مارس 2020 به بعد، تمام مرورگرهای مدرن از آن پشتیبانی میکنند ?.=
عملگر:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
فوریه 2020 | فوریه 2020 | مارس 2020 | مارس 2020 | مارس 2020 |
عملگر AND منطقی اختصاصی (&&= عملگر)
عملیات تخصیص منطقی وبرای بین دو مقدار استفاده میشود.
اگر اولین مقدار true
، سپس دومین مقدار تخصیص داده میشود.
مثال عملیات تخصیص منطقی و
let x = 100; x &&= 5;
از سپتامبر 2020، تمام مرورگرهای مدرن از آن پشتیبانی میکنند &&=
عملگر:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
آگوست 2020 | آگوست 2020 | مارس 2020 | سپتامبر 2020 | سپتامبر 2020 |
عملیات تخصیص منطقی یا (عملیات ||=)
عملیات تخصیص منطقی یابرای بین دو مقدار استفاده میشود.
اگر اولین مقدار false
، سپس دومین مقدار تخصیص داده میشود.
مثال عملیات تخصیص منطقی یا
let x = 10; x ||= 5;
از سپتامبر 2020، تمام مرورگرهای مدرن از آن پشتیبانی میکنند ||=
عملگر:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
آگوست 2020 | آگوست 2020 | مارس 2020 | سپتامبر 2020 | سپتامبر 2020 |
عملگر ترکیب مقدار خالی اختصاصی (??= عملگر)
عملگر ترکیب مقدار خالی اختصاصی(Nullish Coalescing Assignment Operator) برای دو مقدار استفاده میشود.
اگر اولین مقدار undefined
یا null
، سپس دومین مقدار تخصیص داده میشود.
مثال عملگر ترکیب مقدار خالی اختصاصی
let x = 10; x ??= 5;
از سپتامبر 2020، تمام مرورگرهای مدرن از آن پشتیبانی میکنند ??=
عملگر:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
آگوست 2020 | آگوست 2020 | مارس 2020 | سپتامبر 2020 | سپتامبر 2020 |