ECMAScript 2019

JavaScript সংস্করণ নম্বর

পুরানো JS সংস্করণগুলি সংখ্যায় নামকরণ করা হয়: ES5 (2009) এবং ES6 (2015)

২০১৬ সাল থেকে, সংস্করণগুলি বছরের নাম দিয়ে নামকরণ করা হয়: ECMAScript 2016, 2017, 2018, 2019, ...

ES2019-এর নতুন বৈশিষ্ট্য:

সতর্কতা

এই বৈশিষ্ট্যগুলি খুবই নতুন

পুরানো ব্রাউজারগুলির জন্য প্রতিস্থাপনী কোড (Polyfill) প্রয়োজন

জেভাস্ক্রিপ্ট স্ট্রিং মেথড trimStart()

ES2019-এ জেভাস্ক্রিপ্টে String মথড় যোগ করা হয়েছে: trimStart()

trimStart() এই মথড়ের কাজকর্ম হল: trim() এরপরও, কিন্তু শুধুমাত্র স্ট্রিংএর প্রারম্ভিক হুইসপেস সরিয়ে দেওয়া হয়。

ইনস্ট্যান্স

let text1 = "     Hello World!     ";
let text2 = text1.trimStart();

স্বয়ং প্রয়াস করুন

২০২০ সালের ১ জানুয়ারি থেকে, সমস্ত আধুনিক ব্রাউজারগুলি JavaScript String trimStart() সমর্থন করে:

চ্রোম এডজ ফায়ারফক্স স্যাফার অপেরা
চ্রোম ৬৬ এডজ ৭৯ ফায়ারফক্স ৬১ স্যাফার১২ অপেরা ৫০
2018 সালের ৪ মাস 2020 সালের ১ মাস 2018 সালের ৬ মাস 2018 সালের ৯ মাস 2018 সালের ৫ মাস

জেভাস্ক্রিপ্ট স্ট্রিং মেথড trimEnd()

ES2019 জাভাস্ক্রিপ্টকে trimEnd() স্ট্রিং মথড়

trimEnd() এই মথড়ের কাজকর্ম হল: trim() এরপরও, কিন্তু শুধুমাত্র স্ট্রিংএর শেষভাগের হুইসপেস সরিয়ে দেওয়া হয়。

ইনস্ট্যান্স

let text1 = "     Hello World!     ";
let text2 = text1.trimEnd();

স্বয়ং প্রয়াস করুন

2020 সালের ১ মাস থেকে, সকল আধুনিক ব্রাউজারকে জাভাস্ক্রিপ্ট স্ট্রিং trimEnd() সমর্থন করে:

চ্রোম এডজ ফায়ারফক্স স্যাফার অপেরা
চ্রোম ৬৬ এডজ ৭৯ ফায়ারফক্স ৬১ স্যাফার১২ অপেরা ৫০
2018 সালের ৪ মাস 2020 সালের ১ মাস 2018 সালের ৬ মাস 2018 সালের ৯ মাস 2018 সালের ৫ মাস

জেভাস্ক্রিপ্ট অবজেক্ট মেথড fromEntries()

ES2019 জাভাস্ক্রিপ্টকে fromEntries() অবজেক্ট পদ্ধতি。

fromEntries() পদ্ধতি রক্ষনীয় কী/মূল্য প্যার থেকে অবজেক্ট তৈরি করে。

ইনস্ট্যান্স

const fruits = [
["apples", 300],
["pears", 900],
["bananas", 500]
];
const myObj = Object.fromEntries(fruits);

স্বয়ং প্রয়াস করুন

2020 সালের ১ মাস থেকে, সকল আধুনিক ব্রাউজারকে জাভাস্ক্রিপ্ট অবজেক্ট fromEntries() সমর্থন করে:

চ্রোম এডজ ফায়ারফক্স স্যাফার অপেরা
চ্রোম ৭৩ এডজ ৭৯ ফায়ারফক্স ৬৩ স্যাফার ১২.১ অপেরা ৬০
2019 সালের ৩ মাস 2020 সালের ১ মাস 2018 সালের ১০ মাস 2019 সালের ৩ মাস 2019 সালের ৪ মাস

অপশনাল ক্যাচ বান্ডলিং

ES2019 থেকে, যদি কোনো না, catch পারামিটারকে বাদ দিতে হয়:

ইনস্ট্যান্স

2019 সালের পূর্ব:

try {
// কোড
catch (err) {
// কোড
}

2019 সালের পর:

try {
// কোড
catch {
// কোড
}

2020 সালের ১ মাস থেকে, সকল আধুনিক ব্রাউজারকে জাভাস্ক্রিপ্ট অপশনাল ক্যাচ বান্ধন সমর্থন করে:

চ্রোম এডজ ফায়ারফক্স স্যাফার অপেরা
চ্রোম ৬৬ এডজ ৭৯ ফায়ারফক্স ৫৮ স্যাফার ১১.১ অপেরা ৫৩
2018 সালের ৪ মাস 2020 সালের ১ মাস 2018 সালের ১ মাস 2018 সালের ৩ মাস 2018 সালের ৫ মাস

জেভাস্ক্রিপ্ট অ্যারে মেথড flat()

ES2019 জাভাস্ক্রিপ্টকে flat() আইন্দ্রনী পদ্ধতি。

flat() পদ্ধতি এক্সপ্লোড করে নিহিত আইন্দ্রনীকে নতুন আইন্দ্রনী তৈরি করে।

ইনস্ট্যান্স

const myArr = [[1,2],[3,4],[5,6]];
const newArr = myArr.flat();

স্বয়ং প্রয়াস করুন

2020 সালের ১ মাস থেকে, সকল আধুনিক ব্রাউজারকে জাভাস্ক্রিপ্ট আইন্দ্রনী flat():

চ্রোম এডজ ফায়ারফক্স স্যাফার অপেরা
চ্রোম ৬৯ এডজ ৭৯ ফায়ারফক্স ৬২ স্যাফার১২ অপেরা ৫৬
2018 সালের ৯ মাস 2020 সালের ১ মাস 2018 সালের ৯ মাস 2018 সালের ৯ মাস 2018 সালের ৯ মাস

জেভাস্ক্রিপ্ট অ্যারে মেথড flatMap()

ES2019 জাভাস্ক্রিপ্টকে flatMap() আইন্দ্রনী পদ্ধতি。

flatMap() মেথড প্রথমে আইন্দ্রনীর সকল ইলাকা ম্যাপিং করে, তারপর নতুন আইন্দ্রনী তৈরি করতে এক্সপ্লোড করে আইন্দ্রনীকে সমাবেশিত করে।

ইনস্ট্যান্স

const myArr = [1, 2, 3, 4, 5, 6];
const newArr = myArr.flatMap((x) => x * 2);

স্বয়ং প্রয়াস করুন

স্থায়ী অ্যারে মেথড sort()

ES2019 পরিশীলনof Array sort() method.

Before 2019, the specification allowed unstable sorting algorithms, such as QuickSort.

After ES2019, browsers must use a stable sorting algorithm:

When elements are sorted based on a value, these elements must maintain their relative position to other elements with the same value.

ইনস্ট্যান্স

const myArr = [
  {name:"X00",price:100 },
  {name:"X01",price:100 },
  {name:"X02",price:100 },
  {name:"X03",price:100 },
  {name:"X04",price:110 },
  {name:"X05",price:110 },
  {name:"X06",price:110 },
  {name:"X07",price:110 }
];

স্বয়ং প্রয়াস করুন

In the above example, when sorted by price, the results are not allowed to appear in other relative positions of the names, as shown below:

X01 100
X03 100
X00 100
X03 100
X05 110
X04 110
X06 110
X07 110

পুনর্মিলিত JSON.stringify()

ES2019 পরিশীলনof JSON's stringify() method.

Before 2019, JSON could not stringify characters encoded with \ .

ইনস্ট্যান্স

let text = JSON.stringify("\u26D4");

স্বয়ং প্রয়াস করুন

Before ES2019, using JSON.stringify() on UTF-8 code points (U+D800 to U+DFFF) would return corrupted Unicode characters, such as ���.

After this revision, strings with UTF-8 code points can be safely converted using JSON.stringify() and restored to the original string using JSON.parse().

বিভাজক সংকেত

Line separators and paragraph separators are now allowed in string literals (\u2028 and \u2029)

Before 2019, these were considered line terminators and caused error exceptions:

ইনস্ট্যান্স

// This is valid in ES2019:
let text = "\u2028";

স্বয়ং প্রয়াস করুন

Note:

Now, JavaScript and JSON have the same rules.

Before ES2019:

text = JSON.parse('"\u2028"') will parse to ''.

text = '"\u2028"' will givegrammatical error

পুনর্মিলিত Function toString()

ES2019 পরিশীলনFunction toString() মেথড

toString() মেথড ফাংশন সোর্স কোড প্রদর্শন করে

২০১৯ সাল থেকে, toString() ফাংশনের সোর্স কোড, কমেন্ট, স্পেস এবং গ্রামার ডিটেল ফিরিয়ে আসবে。

২০১৯ সালের আগে, ভিন্ন ব্রাউজারগুলি ভিন্ন ফাংশন ভার্সন ফিরিয়েছিল (যেমন, নোটস এবং স্পেস)।২০১৯ সাল থেকে, এই ফাংশনটি লিখা হওয়ার মতোই ফিরিয়ে আসবে。

ইনস্ট্যান্স

ফাংশন মাইফাংশন(পী1, পী2) {
  রিটার্ন পী1 * পী2;
}

স্বয়ং প্রয়াস করুন