ECMAScript 2020

شماره نسخه JavaScript

نسخه‌های قدیمی JavaScript با نام عددی نامگذاری می‌شوند: ES5 (2009) و ES6 (2015).

از سال 2016، نسخه‌ها با نام سال نامگذاری می‌شوند: ECMAScript 2016، 2017، 2018، 2019، ...

ویژگی‌های جدید ES2020:

اخطار

این ویژگی‌ها نسبتاً جدید هستند.

مرورگرهای قدیمی ممکن است نیاز به کد جایگزین (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