ECMAScript 2019

  • ਪਿਛਲਾ ਪੰਨਾ JS 2018
  • ਅਗਲਾ ਪੰਨਾ JS 2020

JavaScript ਸੰਸਕਰਣ ਨੰਬਰ

ਪੁਰਾਣੇ JS ਸੰਸਕਰਣਾਂ ਨੂੰ ਨੰਬਰ ਨਾਲ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ: ES5 (2009) ਅਤੇ ES6 (2015)

2016 ਤੋਂ ਲੈ ਕੇ, ਸੰਸਕਰਣਾਂ ਨੂੰ ਸਾਲ ਦੇ ਨਾਮ ਨਾਲ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ: ECMAScript 2016, 2017, 2018, 2019, ...

ES2019 ਵਿੱਚ ਨਵੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ:

ਚਾਹੇਦਾਰੀ

ਇਹ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨਵੀਆਂ ਹਨ

ਪੁਰਾਣੇ ਬਰਾਉਜ਼ਰਾਂ ਲਈ ਬਦਲਦਾ ਕੋਡ (Polyfill) ਚਾਹੀਦਾ ਹੈ

JavaScript ਸਟ੍ਰਿੰਗ ਮੈਥਡਸ trimStart()

ES2019 ਨੇ JavaScript ਵਿੱਚ String ਮੇਥੋਡ ਜੋੜਿਆ ਹੈ: trimStart()

trimStart() ਮੇਥੋਡ ਦਾ ਕਾਮਕਾਜ ਇਸ ਨਾਲ ਹੁੰਦਾ ਹੈ: trim() ਵਰਤਣ ਵਿੱਚ ਹੈ, ਪਰ ਸਿਰਫ਼ ਸਟਰਿੰਗ ਦੇ ਸ਼ੁਰੂ ਵਿੱਚ ਸ਼ੂਟਸ ਹਟਾਉਂਦਾ ਹੈ。

ਇੰਸਟੈਂਸ

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

ਸਵੈ ਕੋਸ਼ਿਸ਼ ਕਰੋ

2020 ਤੋਂ ਇਲਾਵਾ ਸਾਰੇ ਆਧੁਨਿਕ ਬਰਾਉਜ਼ਰਾਂ ਨੇ JavaScript String trimStart() ਨੂੰ ਸਮਰਥਨ ਕੀਤਾ:

ਚਰੋਮ ਐਜ਼ਡ ਫਾਇਰਫਾਕਸ ਸਫਾਰੀ ਓਪਰਾ
ਚਰੋਮ 66 ਐਜ਼ਡ 79 ਫਾਇਰਫਾਕਸ 61 ਸਫਾਰੀ 12 ਓਪਰਾ 50
2018 ਅਪ੍ਰੈਲ 2020 ਜਨਵਰੀ 2018 ਜੂਨ 2018 ਸਤੰਬਰ 2018 ਮਈ

JavaScript ਸਟ੍ਰਿੰਗ ਮੈਥਡਸ trimEnd()

ES2019 ਨੇ ਜਾਵਸਕ੍ਰਿਪਟ ਨੂੰ trimEnd() ਸਟਰਿੰਗ ਮੇਥੋਡ ਹਨ。

trimEnd() ਮੇਥੋਡ ਦਾ ਕਾਮਕਾਜ ਇਸ ਨਾਲ ਹੁੰਦਾ ਹੈ: trim() ਵਰਤਣ ਵਿੱਚ ਹੈ, ਪਰ ਸਿਰਫ਼ ਸਟਰਿੰਗ ਦੇ ਅੰਤ ਵਿੱਚ ਸ਼ੂਟਸ ਹਟਾਉਂਦਾ ਹੈ。

ਇੰਸਟੈਂਸ

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

ਸਵੈ ਕੋਸ਼ਿਸ਼ ਕਰੋ

2020 ਜਨਵਰੀ ਤੋਂ ਲੈ ਕੇ, ਸਾਰੇ ਆਧੁਨਿਕ ਬਰਾਉਜ਼ਰਾਂ ਨੇ JavaScript String trimEnd() ਨੂੰ ਸਮਰਥਨ ਕੀਤਾ:

ਚਰੋਮ ਐਜ਼ਡ ਫਾਇਰਫਾਕਸ ਸਫਾਰੀ ਓਪਰਾ
ਚਰੋਮ 66 ਐਜ਼ਡ 79 ਫਾਇਰਫਾਕਸ 61 ਸਫਾਰੀ 12 ਓਪਰਾ 50
2018 ਅਪ੍ਰੈਲ 2020 ਜਨਵਰੀ 2018 ਜੂਨ 2018 ਸਤੰਬਰ 2018 ਮਈ

JavaScript ਆਬਜੈਕਟ ਮੈਥਡਸ fromEntries()

ES2019 ਨੇ ਜਾਵਸਕ੍ਰਿਪਟ ਨੂੰ fromEntries() ਆਬੋਹਵਾ ਮੇਥਡ

fromEntries() ਮੇਥਡ ਨਾਲ ਸ਼੍ਰੇਣੀਬੱਧ ਕੀਤੇ ਗਏ ਕੀ/ਮੁੱਲ ਪਾਰਸੀਗਾਂ ਤੋਂ ਆਬੋਹਵਾ ਬਣਾਉਂਦਾ ਹੈ。

ਇੰਸਟੈਂਸ

const fruits = [
["apples", 300],
["pears", 900],
["bananas", 500]

const myObj = Object.fromEntries(fruits);

ਸਵੈ ਕੋਸ਼ਿਸ਼ ਕਰੋ

2020 ਜਨਵਰੀ ਤੋਂ ਲੈ ਕੇ, ਸਾਰੇ ਆਧੁਨਿਕ ਬਰਾਉਜ਼ਰਾਂ ਨੇ JavaScript Object fromEntries() ਨੂੰ ਸਮਰਥਨ ਕੀਤਾ:

ਚਰੋਮ ਐਜ਼ਡ ਫਾਇਰਫਾਕਸ ਸਫਾਰੀ ਓਪਰਾ
ਚਰੋਮ 73 ਐਜ਼ਡ 79 ਫਾਇਰਫਾਕਸ 63 ਸਫਾਰੀ 12.1 ਓਪਰਾ 60
2019 ਮਾਰਚ 2020 ਜਨਵਰੀ 2018 ਅਕਤੂਬਰ 2019 ਮਾਰਚ 2019 ਅਪ੍ਰੈਲ

ਵਿਕਲਪਿਤ catch ਬਾਂਧ

ES2019 ਤੋਂ ਲੈ ਕੇ, ਜੇਕਰ ਜ਼ਰੂਰਤ ਨਹੀਂ ਹੈ ਤਾਂ catch ਪੈਰਾਮੀਟਰ ਨੂੰ ਛੱਡ ਸਕਦੇ ਹਨ:

ਇੰਸਟੈਂਸ

2019 ਤੋਂ ਪਹਿਲਾਂ:

try {
// ਕੋਡ
}
// ਕੋਡ
}

2019 ਤੋਂ ਬਾਅਦ:

try {
// ਕੋਡ
}
// ਕੋਡ
}

2020 ਜਨਵਰੀ ਤੋਂ ਲੈ ਕੇ, ਸਾਰੇ ਆਧੁਨਿਕ ਬਰਾਉਜ਼ਰਾਂ ਨੇ ਚੋਣਵੇਂ catch ਬਾਂਧ ਨੂੰ ਸਮਰਥਨ ਕੀਤਾ:

ਚਰੋਮ ਐਜ਼ਡ ਫਾਇਰਫਾਕਸ ਸਫਾਰੀ ਓਪਰਾ
ਚਰੋਮ 66 ਐਜ਼ਡ 79 ਫਾਇਰਫਾਕਸ 58 ਸਫਾਰੀ 11.1 ਓਪਰਾ 53
2018 ਅਪ੍ਰੈਲ 2020 ਜਨਵਰੀ 2018 ਜਨਵਰੀ 2018 ਮਾਰਚ 2018 ਮਈ

JavaScript ਐਕਸੇਸਸਮੈਥਡਸ flat()

ES2019 ਨੇ ਜਾਵਸਕ੍ਰਿਪਟ ਨੂੰ flat() ਬੰਦਰੀ ਮੇਥਡ

flat() ਮੇਥਡ ਨਾਲ ਨਾਵਰਤੀ ਬੰਦਰੀ ਨੂੰ ਫਲੈਟ ਕਰਕੇ ਨਵੀਂ ਬੰਦਰੀ ਬਣਾਉਂਦਾ ਹੈ。

ਇੰਸਟੈਂਸ

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

ਸਵੈ ਕੋਸ਼ਿਸ਼ ਕਰੋ

2020 ਜਨਵਰੀ ਤੋਂ ਲੈ ਕੇ, ਸਾਰੇ ਆਧੁਨਿਕ ਬਰਾਉਜ਼ਰਾਂ ਨੇ JavaScript Array flat() ਨੂੰ ਸਮਰਥਨ ਕੀਤਾ:

ਚਰੋਮ ਐਜ਼ਡ ਫਾਇਰਫਾਕਸ ਸਫਾਰੀ ਓਪਰਾ
ਚਰੋਮ 69 ਐਜ਼ਡ 79 ਫਾਇਰਫਾਕਸ 62 ਸਫਾਰੀ 12 ਓਪਰਾ 56
2018 ਸਤੰਬਰ 2020 ਜਨਵਰੀ 2018 ਸਤੰਬਰ 2018 ਸਤੰਬਰ 2018 ਸਤੰਬਰ

JavaScript ਐਕਸੇਸਸਮੈਥਡਸ flatMap()

ES2019 ਨੇ ਜਾਵਸਕ੍ਰਿਪਟ ਨੂੰ flatMap() ਬੰਦਰੀ ਮੇਥਡ

flatMap() ਮੇਥਡ ਪਹਿਲਾਂ ਇੱਕ ਬੰਦਰੀ ਦੇ ਸਾਰੇ ਤੱਤਾਂ ਨੂੰ ਮੈਪ ਕਰਦਾ ਹੈ, ਫਿਰ ਬੰਦਰੀ ਨੂੰ ਫਲੈਟ ਕਰਕੇ ਨਵੀਂ ਬੰਦਰੀ ਬਣਾਉਂਦਾ ਹੈ。

ਇੰਸਟੈਂਸ

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

ਸਵੈ ਕੋਸ਼ਿਸ਼ ਕਰੋ

ਸਥਿਰ ਐਕਸੇਸਸਮੈਥਡਸ sort()

ES2019 ਸੋਧ了 Array sort() 方法。

在 2019 年之前,规范允许不稳定的排序算法,例如 QuickSort。

在 ES2019 之后,浏览器必须使用稳定的排序算法:

当根据一个值对元素进行排序时,这些元素必须保持它们与具有相同值的其他元素的相对位置。

ਇੰਸਟੈਂਸ

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 }

ਸਵੈ ਕੋਸ਼ਿਸ਼ ਕਰੋ

ਉੱਤੇ ਉਦਾਹਰਣ ਵਿੱਚ ਜਦੋਂ ਕਿਸੇ ਕੀਮਤ ਦੇ ਅਧਾਰ 'ਤੇ ਕ੍ਰਮ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਤਾਂ ਨਤੀਜੇ ਵਿੱਚ ਹੋਰ ਸਬੰਧਤ ਸਥਿਤੀਆਂ ਵਿੱਚ ਨਾਮ ਦਿਖਾਈ ਨਹੀਂ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ ਜਿਵੇਂ ਹੇਠ ਦਿੱਤਾ ਗਿਆ ਹੈ:

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

ਮੁੜ ਸੋਧੀ ਹੋਈ JSON.stringify()

ES2019 ਸੋਧJSON ਦੇ stringify() ਮੈਥਡ ਲਈ

2019 ਤੋਂ ਪਹਿਲਾਂ JSON ਦੁਆਰਾ \ ਐਂਕੋਡਿੰਗ ਵਾਲੇ ਅੱਖਰਾਂ ਨੂੰ ਸਟਰਿੰਗੀਕਰਨ ਕਰਨਾ ਸੰਭਵ ਨਹੀਂ ਸੀ。

ਇੰਸਟੈਂਸ

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

ਸਵੈ ਕੋਸ਼ਿਸ਼ ਕਰੋ

ES2019 ਤੋਂ ਪਹਿਲਾਂ، UTF-8 ਕੋਡ ਪੁਆਇੰਟ (U+D800 ਤੋਂ U+DFFF) 'ਤੇ JSON.stringify() ਦੁਆਰਾ ਨੁਕਸਾਨਦੇਹ Unicode ਅੱਖਰਾਂ ਵਾਲਾ ਪ੍ਰਤੀਕ ਵਾਪਸ ਦਿੰਦਾ ਸੀ ਜਿਵੇਂ ���。

ਇਸ ਸੋਧ ਤੋਂ ਬਾਅਦ، UTF-8 ਕੋਡ ਪੁਆਇੰਟ (U+D800 ਤੋਂ U+DFFF) ਵਾਲੇ ਸਟਰਿੰਗ ਦੇ ਸੁਰੱਖਿਅਤ ਰੂਪ ਵਿੱਚ JSON.stringify() ਦੁਆਰਾ ਟਰਾਂਸਫਾਰਮ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ ਅਤੇ JSON.parse() ਰਾਹੀਂ ਮੂਲ ਸਟਰਿੰਗ ਵਿੱਚ ਬਹਾਲ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ。

ਵੰਡਨ ਸਮਾਂ

ਸਟਰਿੰਗ ਟੈਕਸਟ ਵਿੱਚ ਹੁਣ ਲਾਈਨ ਸੈਪਰੇਟਰ ਅਤੇ ਪੈਰਾਗ੍ਰਾਫ ਸੈਪਰੇਟਰ ਦਾ ਇਸਤੇਮਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ (\u2028 ਅਤੇ \u2029)。

2019 ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਨਾਲ ਲਾਈਨ ਟਰੀਮਨਟਰ ਦੇ ਰੂਪ ਵਿੱਚ ਮੰਨਿਆ ਜਾਂਦਾ ਸੀ ਅਤੇ ਇਸ ਕਰਕੇ ਗਲਤੀ ਹੁੰਦੀ ਸੀ:

ਇੰਸਟੈਂਸ

// ਇਹ ES2019 ਵਿੱਚ ਵੈਧ ਹੈ:
let text = "\u2028";

ਸਵੈ ਕੋਸ਼ਿਸ਼ ਕਰੋ

ਧਿਆਨ

ਹੁਣ ਜਾਵਾਸਕ੍ਰਿਪਟ ਅਤੇ JSON ਨੂੰ ਇੱਕ ਜਿਸ਼ਤ ਦੇ ਨਿਯਮਾਂ ਦਾ ਰੱਖਿਆ ਗਿਆ ਹੈ。

ES2019 ਤੋਂ ਪਹਿਲਾਂ:

text = JSON.parse('"\u2028"') ਪਰਿਭਾਸ਼ਿਤ ਹੁੰਦਾ ਹੈ ''。

text = '"\u2028"' ਦਿੰਦਾ ਹੈਗਰਾਮਰ ਤਰਕ

ਮੁੜ ਸੋਧੀ ਹੋਈ Function toString()

ES2019 ਸੋਧFunction toString() ਮੈਥਡ

toString() ਮੈਥਡ ਫੰਕਸ਼ਨ ਦੇ ਸਰੋਤ ਕੋਡ ਦੀ ਪ੍ਰਤੀਨਿਧਤਾ ਵਾਲੀ ਸਟ੍ਰਿੰਗ ਵਾਪਰਦੀ ਹੈ。

2019 ਤੋਂ ਲੈ ਕੇ, toString() ਫੰਕਸ਼ਨ ਦੇ ਸਰੋਤ ਕੋਡ ਨੂੰ ਵਾਪਰਣਾ ਹੋਵੇਗਾ, ਜਿਸ ਵਿੱਚ ਟਿੱਪਣੀ, ਖਾਲੀ ਜਗ੍ਹਾ ਅਤੇ ਗਰਾਫੀਕਲ ਵੇਰਵੇ ਸ਼ਾਮਲ ਹੋਣਗੇ。

2019 ਤੋਂ ਪਹਿਲਾਂ, ਵੱਖ-ਵੱਖ ਬਰਾਅਜ਼ਰਾਂ ਵੱਲੋਂ ਵੱਖ-ਵੱਖ ਫੰਕਸ਼ਨ ਵਿਵਰਤਨਾਂ ਵਾਪਰੇ (ਉਦਾਹਰਣ ਵਜੋਂ ਟਿੱਪਣੀ ਅਤੇ ਖਾਲੀ ਜਗ੍ਹਾ ਰਹਿਣ ਵਾਲੇ)।2019 ਤੋਂ ਲੈ ਕੇ, ਫੰਕਸ਼ਨ ਕੋਲ ਲਿਖੇ ਹੋਏ ਅਕਸਰ ਮੁੱਖ ਤੌਰ 'ਤੇ ਵਾਪਰਣਗੇ।

ਇੰਸਟੈਂਸ

function myFunction(p1, p2) {
  return p1 * p2;
}

ਸਵੈ ਕੋਸ਼ਿਸ਼ ਕਰੋ

  • ਪਿਛਲਾ ਪੰਨਾ JS 2018
  • ਅਗਲਾ ਪੰਨਾ JS 2020