ECMAScript 2018

জাভাস্ক্রিপ্টে নতুন বৈশিষ্ট্য জানুন

ECMAScript 2018

ECMAScript 2018 (ইএস9 নামেও পরিচিত) হল জাভাস্ক্রিপ্ট ভাষার 9তম সংস্করণ। এটি 2018 সালে প্রকাশিত হয়েছিল এবং অ্যাসিঙ্ক্রোনাস ডেরিভেশন, প্রতিশ্রুতি চূড়ান্ততা এবং নতুন RegExp বৈশিষ্ট্য সহ বেশ কয়েকটি নতুন বৈশিষ্ট্য প্রবর্তন করেছে।

এই টিউটোরিয়ালে, আপনি ES2018-এ প্রবর্তিত সমস্ত গুরুত্বপূর্ণ বৈশিষ্ট্যগুলি শিখবেন।

জাভাস্ক্রিপ্ট 2018-এ নতুন বৈশিষ্ট্য

বৈশিষ্ট্য ব্যাখ্যা
Asynchronous Iteration লুপগুলির জন্য/অপেক্ষা করুন কীওয়ার্ড ব্যবহারের অনুমতি দেয়
Promise Finally একটি প্রতিশ্রুতি "পূর্ণ" বা "প্রত্যাখ্যান" হলে চালানোর জন্য একটি কর্ম নির্ধারণ করে।
Array Rest Elements আপনাকে একটি সারি সাফ করতে এবং বাকিগুলি সংগ্রহ করতে দেয়৷
Object Rest Properties আপনি একটি বস্তু ধ্বংস এবং বাকি সংগ্রহ করতে পারবেন
Shared Memory একটি প্রোগ্রামের বিভিন্ন অংশকে একই মেমরি অ্যাক্সেস করার অনুমতি দেয়

2018 সালে নতুন RegExp বৈশিষ্ট্য

বৈশিষ্ট্য ব্যাখ্যা
/s . (ডট) মেটা অক্ষরটি লাইন টার্মিনেটরকে ম্যাচিং করার অনুমতি দেয়
\p{} একটি ইউনিকোড অক্ষর বৈশিষ্ট্যের সাথে একটি অক্ষর মেলে
(?<=y) যদি "y" এর আগে "x" হয় তাহলে (?<=y)x "x" এর সাথে মেলে।
(?<!y) (?<!y)x "x" এর সাথে মেলে যদি না "x" "y" এর আগে না থাকে।
(?<name>) পাঠ্য ধরে রাখে এবং নাম দেয় (লেবেল)।

ব্রাউজার সমর্থন

ECMAScript 2018 জুন 2020 পর্যন্ত সমস্ত আধুনিক ব্রাউজারে সমর্থিত:

Chrome Edge Firefox Safari Opera
64 79 78 12 51
জানুয়ারী 2018 জানুয়ারী 2020 জুন 2020 সেপ্টেম্বর 2018 ফেব্রুয়ারী 2018

JavaScript Asynchronous Iteration

ECMAScript 2018 অ্যাসিঙ্ক্রোনাস ইটারেটর এবং টেরেবল যোগ করেছে।

অ্যাসিঙ্ক্রোনাস Terbles-এর সাহায্যে, আমরা await কীওয়ার্ড in for/of loops ব্যবহার করতে পারি।

উদাহরণ

for await () {}

JavaScript Promise.finally()

ECMAScript 2018 Promise.finally এর সাথে প্রতিশ্রুতি অবজেক্টের সম্পূর্ণ বাস্তবায়ন চূড়ান্ত করে:

Promise.finally() promise .

উদাহরণ

let myPromise = new Promise();

myPromise.then();
myPromise.catch();
myPromise.finally();

JavaScript Array Rest Elements

ECMAScript 2018 বাকি অপারেটর (...) যোগ করেছে।

রেস্ট অপারেটর (...) আমাদের একটি অ্যারে সাফ করতে এবং অবশিষ্ট সংগ্রহ করতে দেয়:

উদাহরণ 1

let a, rest;
const arr1 = [1,2,3,4,5,6,7,8];

[a, ...rest] = arr1;

উদাহরণ 2

let a, b, rest;
const arr1 = [1,2,3,4,5,6,7,8];

[a, b, ...rest] = arr1;

JavaScript Object Rest Properties

ECMAScript 2018 বাকি অপারেটর (...) যোগ করেছে।

এটি আমাদের একটি বস্তুকে ধ্বংস করতে এবং বাকীটিকে একটি নতুন বস্তুতে সংগ্রহ করতে দেয়:

উদাহরণ

// Create an Object:
const car = {type:"Fiat", model:"500", color:"white"};

// Destructure the Object
let {type, model, color} = car;
document.getElementById("demo").innerHTML = "The car type is: " + type;

নতুন জাভাস্ক্রিপ্ট RegExp বৈশিষ্ট্য

ECMAScript 2018 4টি নতুন RegExp বৈশিষ্ট্য যুক্ত করেছে:

/s (dotAll) Flag
Unicode Property Escapes (\p{...})
Lookbehind Assertions (?<=y)x and (?<!y)x
Named Capture Groups

RegExp /s Flag

উদাহরণ

let text = "Line\nLine.";

let pattern = /Line./gs;
let result = text.match(pattern);

ব্যাখ্যা

s (ডটঅল) পতাকা। (ডট) মেটা অক্ষর লাইন টার্মিনেটর অক্ষর (\n, \r, \u2028, \u2029 ইত্যাদি) সহ যেকোনো অক্ষরকে মেলাতে দেয়।

s ছাড়া, \n লাইন টার্মিনেটরের সাথে মেলে না।

RegExp \p Metacharacter

উদাহরণ

let text = "Hello 😄";

let pattern = /\p{RGI_Emoji}/v;
let result = pattern.test(text);

ব্যাখ্যা

\p{ইউনিকোড প্রপার্টি} মেটাক্যারেক্টার ইউনিকোড ক্যারেক্টার প্রোপার্টির সাথে যেকোনো অক্ষরের সাথে মিলে যায়।

RegExp Lookbehind

উদাহরণ (?<=y)x

let text = "Hello W3Schools";

let pattern = /(?<=Hello )W3Schools/;
let result = pattern.test(text);

ব্যাখ্যা

যদি "y" এর আগে "x" হয় তাহলে (?<=y)x "x" এর সাথে মেলে।

নেতিবাচক চেহারার উদাহরণ (?<!y)x

let text = "Hello W3Schools";

let pattern = /(?<=Hello )W3Schools/;
let result = pattern.test(text);

ব্যাখ্যা

(?<!y)x "x" এর সাথে মেলে যদি না "x" "y" এর আগে না থাকে।

RegExp Named Capturing Groups

উদাহরণ (?<name>...)

const text = "Name: John Doe";

// Using named capturing groups
const regex = /(?\w+) (?\w+)/;
const match = text.match(regex);

let fName = match.groups.firstName;
let lName = match.groups.lastName;

ব্যাখ্যা

(?<firstName>\w+) একটি শব্দ ধরে এবং এটিকে প্রথম নাম হিসাবে লেবেল করে

(?<lastName>\w+) lastName-এর জন্য একই কাজ করে

text.match() groups

match.groups() :

{firstName:"John", lastName:"Doe" }

💡গুরুত্বপূর্ণ নোট:

একটি রেগুলার এক্সপ্রেশন ব্যবহার করার সময় যেটিতে ক্যাপচারিং গ্রুপ রয়েছে, একটি স্ট্রিংয়ের ম্যাচ() পদ্ধতি একটি ফলাফল অ্যারে প্রদান করে যাতে একটি গ্রুপ অ্যাট্রিবিউট অন্তর্ভুক্ত থাকে। গ্রুপ অ্যাট্রিবিউট হল একটি অবজেক্ট যা নামধারী ক্যাপচারিং গ্রুপের সাথে মিল রাখে।

JavaScript Threads

জাভাস্ক্রিপ্টে থ্রেড তৈরি করতে আপনি ওয়েব ওয়ার্কার্স API ব্যবহার করবেন।

মূল প্রোগ্রাম এক্সিকিউশন চালিয়ে যাওয়ার জন্য ব্যাকগ্রাউন্ডে কোড চালানোর জন্য ওয়ার্কার থ্রেড ব্যবহার করা হয়।

কর্মী থ্রেড প্রধান প্রোগ্রামের সাথে একযোগে সঞ্চালিত হয়। একটি প্রোগ্রামের বিভিন্ন অংশের একযোগে সঞ্চালন সময় বাঁচায়।

JavaScript Shared Memory

শেয়ার্ড মেমরি এমন একটি বৈশিষ্ট্য যা থ্রেডকে (একটি প্রোগ্রামের বিভিন্ন অংশ) একই মেমরিতে একই ডেটা অ্যাক্সেস এবং আপডেট করতে দেয়।

থ্রেডগুলির মধ্যে ডেটা পাস করার পরিবর্তে, আপনি একটি SharedArrayBuffer অবজেক্ট পাস করতে পারেন যা মেমরির দিকে নির্দেশ করে যেখানে ডেটা সংরক্ষণ করা হয়।

SharedArrayBuffer

একটি SharedArrayBuffer অবজেক্ট একটি ArrayBuffer অবজেক্টের মতো একটি নির্দিষ্ট দৈর্ঘ্যের কাঁচা বাইনারি ডেটা বাফারকে উপস্থাপন করে।

ECMAScript 2018 টিউটোরিয়াল

ES2018-এ শেখা বৈশিষ্ট্যগুলি পরীক্ষা করার জন্য এই টিউটোরিয়ালটি ব্যবহার করে দেখুন।

ES2018 এ প্রবর্তিত নিম্নলিখিত বৈশিষ্ট্যগুলির মধ্যে কোনটি একটি প্রতিশ্রুতি "পূর্ণ" বা "প্রত্যাখ্যান" হলে চালানোর জন্য একটি ফাংশন নির্ধারণ করে?

Promise.thenFinally()
✗ ভুল! Promise.thenFinally() বলে কোন পদ্ধতি নেই
Promise.complete()
✗ ভুল! Promise.complete() নামে কোন পদ্ধতি নেই
Promise.always()
✗ ভুল! Promise.always() বলে কোন পদ্ধতি নেই
Promise.finally()
✓ ঠিক আছে! Promise.finally() হল ES2018 এ প্রবর্তিত একটি পদ্ধতি যা একটি প্রতিশ্রুতি "পূর্ণ" বা "প্রত্যাখ্যান" হলে চালানোর জন্য একটি ফাংশন নির্ধারণ করে।