ECMAScript 2018

JavaScript இல் புதிய அம்சங்களைக் கற்றுக்கொள்ளுங்கள்

ECMAScript 2018

ECMAScript 2018 (ES9 எனவும் அழைக்கப்படுகிறது) என்பது ஜாவாஸ்கிரிப்ட் மொழிக்கான 9வது பதிப்பாகும். இது 2018 ஆம் ஆண்டில் வெளியிடப்பட்டது மற்றும் அசிங்க்ரோனஸ் டெரேஷன், பிராமிஸ் ஃபைனலி, மற்றும் புதிய RegExp அம்சங்கள் உள்ளிட்ட பல புதிய அம்சங்களை அறிமுகப்படுத்தியது.

இந்த டுடோரியலில், ES2018 இல் அறிமுகப்படுத்தப்பட்ட அனைத்து முக்கிய அம்சங்களையும் நீங்கள் கற்றுக்கொள்வீர்கள்.

JavaScript 2018 இல் புதிய அம்சங்கள்

அம்சம் விளக்கம்
Asynchronous Iteration for/of loops இல் await keyword ஐ பயன்படுத்த அனுமதிக்கிறது
Promise Finally ஒரு promise "fulfilled" அல்லது "rejected" ஆகும்போது ஒரு செயல்பாட்டை இயக்க திட்டமிடுகிறது
Array Rest Elements ஒரு வரிசையை அழிக்கவும் மீதமுள்ளவற்றை சேகரிக்கவும் அனுமதிக்கிறது
Object Rest Properties ஒரு பொருளை அழிக்கவும் மீதமுள்ளவற்றை சேகரிக்கவும் அனுமதிக்கிறது
Shared Memory ஒரு நிரலின் வெவ்வேறு பகுதிகள் ஒரே நினைவகத்தை அணுக அனுமதிக்கிறது

2018 இல் புதிய RegExp அம்சங்கள்

அம்சம் விளக்கம்
/s . (dot) மெட்டா கேரக்டர் வரி முடிப்பாளர்களுடன் பொருந்த அனுமதிக்கிறது
\p{} Unicode கேரக்டர் பண்புடன் கேரக்டரை பொருத்துகிறது
(?<=y) "y" க்கு முன்னால் "x" இருந்தால் (?<=y)x "x" ஐ பொருத்துகிறது
(?<!y) "y" க்கு முன்னால் "x" இல்லாவிட்டால் (?<!y)x "x" ஐ பொருத்துகிறது
(?<name>) உரையை பிடித்து பெயர்களை (லேபிள்கள்) அளிக்கிறது

உலாவி ஆதரவு

ECMAScript 2018 ஜூன் 2020 முதல் அனைத்து நவீன உலாவிகளிலும் ஆதரிக்கப்படுகிறது:

Chrome Edge Firefox Safari Opera
64 79 78 12 51
ஜனவரி 2018 ஜனவரி 2020 ஜூன் 2020 செப்டம்பர் 2018 பிப்ரவரி 2018

JavaScript Asynchronous Iteration

ECMAScript 2018 அசிங்க்ரோனஸ் டெரேட்டர்கள் மற்றும் டெரேபிள்களை சேர்த்தது.

அசிங்க்ரோனஸ் டெரேபிள்களுடன், நாம் for/of loops இல் await keyword ஐ பயன்படுத்தலாம்.

எடுத்துக்காட்டு

for await () {}

JavaScript Promise.finally()

ECMAScript 2018 Promise.finally உடன் Promise பொருளின் முழு செயலாக்கத்தை இறுதிப்படுத்துகிறது:

Promise.finally() ஒரு promise வெற்றிகரமாக தீர்க்கப்பட்டது அல்லது நிராகரிக்கப்பட்டது போது செயல்படுத்தப்பட வேண்டிய ஒரு செயல்பாட்டை வரையறுக்கிறது.

எடுத்துக்காட்டு

let myPromise = new Promise();

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

JavaScript Array Rest Elements

ECMAScript 2018 rest operator (...) ஐ சேர்த்தது.

Rest operator (...) ஒரு வரிசையை அழிக்கவும் மீதமுள்ளவற்றை சேகரிக்கவும் அனுமதிக்கிறது:

எடுத்துக்காட்டு 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 rest operator (...) ஐ சேர்த்தது.

இது ஒரு பொருளை அழிக்கவும் மீதமுள்ளவற்றை ஒரு புதிய பொருளில் சேகரிக்கவும் அனுமதிக்கிறது:

எடுத்துக்காட்டு

// 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;

புதிய JavaScript 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 (dotAll) flag . (dot) மெட்டா கேரக்டர் எந்த கேரக்டரையும் பொருத்த அனுமதிக்கிறது, வரி முடிப்பாளர் கேரக்டர்கள் ( \n, \r, \u2028, \u2029 போன்றவை) உட்பட.

s இல்லாமல், \n வரி முடிப்பாளர்களுடன் பொருந்தாது.

RegExp \p Metacharacter

எடுத்துக்காட்டு

let text = "Hello 😄";

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

விளக்கம்

\p{Unicode Property} மெட்டா கேரக்டர் Unicode கேரக்டர் பண்புடன் எந்த கேரக்டரையும் பொருத்துகிறது.

RegExp Lookbehind

எடுத்துக்காட்டு (?<=y)x

let text = "Hello W3Schools";

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

விளக்கம்

"y" க்கு முன்னால் "x" இருந்தால் (?<=y)x "x" ஐ பொருத்துகிறது.

Negative Lookbehind எடுத்துக்காட்டு (?<!y)x

let text = "Hello W3Schools";

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

விளக்கம்

"y" க்கு முன்னால் "x" இல்லாவிட்டால் (?<!y)x "x" ஐ பொருத்துகிறது.

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+) ஒரு வார்த்தையை பிடித்து அதை firstName என லேபிளிடுகிறது

(?<lastName>\w+) lastName க்கும் அதையே செய்கிறது

text.match() ஒரு groups பண்புடன் கூடிய விளைவு வரிசையை வழங்குகிறது

match.groups() ஒரு பொருளை வழங்குகிறது:

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

💡 முக்கிய குறிப்பு:

கேப்ச்சரிங் குரூப்புகளைக் கொண்ட வழக்கமான வெளிப்பாட்டைப் பயன்படுத்தும்போது, ஒரு சரத்தின் match() முறை ஒரு groups பண்பை உள்ளடக்கிய ஒரு விளைவு வரிசையை வழங்குகிறது. இந்த groups பண்பு என்பது பெயரிடப்பட்ட கேப்ச்சரிங் குரூப்புகளுக்கான பொருத்தங்களை வைத்திருக்கும் ஒரு பொருள்.

JavaScript Threads

JavaScript இல் நூல்களை உருவாக்க Web Workers API ஐப் பயன்படுத்துவீர்கள்.

முதன்மை நிரல் செயல்பாட்டைத் தொடரும் வகையில் பின்னணியில் குறியீட்டை இயக்க வோர்கர் நூல்கள் பயன்படுத்தப்படுகின்றன.

வோர்கர் நூல்கள் முதன்மை நிரலுடன் ஒரே நேரத்தில் இயங்குகின்றன. ஒரு நிரலின் வெவ்வேறு பகுதிகளின் ஒரே நேரத்திலான செயலாக்கம் நேரத்தைச் சேமிக்கும்.

JavaScript Shared Memory

பகிரப்பட்ட நினைவகம் என்பது நூல்கள் (ஒரு நிரலின் வெவ்வேறு பகுதிகள்) ஒரே தரவை ஒரே நினைவகத்தில் அணுகவும் புதுப்பிக்கவும் அனுமதிக்கும் ஒரு அம்சமாகும்.

நூல்களுக்கு இடையில் தரவை அனுப்புவதற்குப் பதிலாக, தரவு சேமிக்கப்பட்ட நினைவகத்தை சுட்டிக்காட்டும் ஒரு SharedArrayBuffer பொருளை அனுப்பலாம்.

SharedArrayBuffer

ஒரு SharedArrayBuffer பொருள் ArrayBuffer பொருளைப் போன்ற ஒரு நிலையான நீளமுள்ள மூல பைனரி தரவு பஃபரைக் குறிக்கிறது.

ECMAScript 2018 பயிற்சி

ES2018 இல் கற்றுக்கொண்ட அம்சங்களைச் சோதிக்க இந்தப் பயிற்சியை முயற்சிக்கவும்.

ES2018 இல் அறிமுகப்படுத்தப்பட்ட பின்வரும் எந்த அம்சம் ஒரு promise "fulfilled" அல்லது "rejected" ஆகும்போது ஒரு செயல்பாட்டை இயக்க திட்டமிடுகிறது?

Promise.thenFinally()
✗ தவறு! Promise.thenFinally() என்று எந்த முறையும் இல்லை
Promise.complete()
✗ தவறு! Promise.complete() என்று எந்த முறையும் இல்லை
Promise.always()
✗ தவறு! Promise.always() என்று எந்த முறையும் இல்லை
Promise.finally()
✓ சரி! Promise.finally() என்பது ES2018 இல் அறிமுகப்படுத்தப்பட்ட முறையாகும், இது ஒரு promise "fulfilled" அல்லது "rejected" ஆகும்போது ஒரு செயல்பாட்டை இயக்க திட்டமிடுகிறது