جاوا سکریپت لیٹ

ECMAScript 2015

ES2015 引入了两个重要的 JavaScript 新关键词:let اور const.

ਇਹ ਦੋ ਕੀਤੀਆਂ ਕੀਤੀਆਂ ਕੀਤੀਆਂ ਜਾਵਾਸਕ੍ਰਿਪਟ ਵਿੱਚ ਬਲਾਕ ਖੇਤਰ ਪ੍ਰਦਾਨ ਕਰਦੀਆਂ ਹਨ (ਬਲਾਕ ਖੇਤਰਵਰਗਾਂ (ਅਤੇ ਸਥਾਈ ਮੁੱਲਾਂ)。

ES2015 ਤੋਂ ਪਹਿਲਾਂ ਜਾਵਾਸਕ੍ਰਿਪਟ ਵਿੱਚ ਜਾਵਾਸਕ੍ਰਿਪਟ ਵਿੱਚ ਕੇਵਲ ਦੋ ਪ੍ਰਕਾਰ ਦੇ ਖੇਤਰ ਹਨ:عالمی کچھوٹاورفنکشن کچھوٹ.

عالمی کچھوٹ

ਗਲੋਬਲਫੰਕਸ਼ਨ ਬਾਹਰ ਨਿਰਧਾਰਿਤ ਮੁੱਲ ਵਰਗਾਂ ਨੂੰعالمی کچھوٹ.

ਇੰਸਟੈਂਸ

var carName = "porsche";
// ਇੱਥੇ ਦੇ ਕੋਡ ਵਿੱਚ carName ਦਾ ਵਰਤੋਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ
function myFunction() {
  // ਇੱਥੇ ਦੇ ਕੋਡ ਵਿੱਚ ਵੀ carName ਦਾ ਵਰਤੋਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ
}

ਆਪਣੇ ਆਪ ਨਾਲ ਪ੍ਰਯੋਗ ਕਰੋ

ਗਲੋਬਲਮੁੱਲ ਵਰਗਾਂ ਜਾਵਾਸਕ੍ਰਿਪਟ ਪ੍ਰੋਗਰਾਮ ਦੇ ਕਿਸੇ ਸਥਾਨ ਤੋਂ ਪਹੁੰਚਯੋਗ ਹਨ

فنکشن کچھوٹ

ਸਥਾਨਕਫੰਕਸ਼ਨ ਅੰਦਰ ਨਿਰਧਾਰਿਤ ਮੁੱਲ ਵਰਗਾਂ ਨੂੰفنکشن کچھوٹ.

ਇੰਸਟੈਂਸ

// ਇੱਥੇ ਦੇ ਕੋਡ ਵਿੱਚ carName ਦਾ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ
function myFunction() {
  var carName = "porsche";
  // code here CAN use carName
}
// ਇੱਥੇ ਦੇ ਕੋਡ ਵਿੱਚ carName ਦਾ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ

ਆਪਣੇ ਆਪ ਨਾਲ ਪ੍ਰਯੋਗ ਕਰੋ

ਸਥਾਨਕਮੁੱਲ ਵਰਗਾਂ ਕੇਵਲ ਉਨ੍ਹਾਂ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਪਹੁੰਚਯੋਗ ਹਨ ਜਿਸ ਵਿੱਚ ਉਹ ਨਿਰਧਾਰਿਤ ਹੋਏ ਹਨ

ਜਾਵਾਸਕ੍ਰਿਪਟ ਬਲਾਕ ਖੇਤਰ

ਦੁਆਰਾ var ਕੀਤੀਆਂ ਕੀਤੀਆਂ ਐਲੀਮੈਂਟਸ ਦੇ ਬਲਾਕ ਨਹੀਂ ਹਨਖੇਤਰ.

ਬਲਾਕ ਵਿੱਚ {} ਬਲਾਕ ਵਿੱਚ ਨਿਰਧਾਰਿਤ ਮੁੱਲ ਵਰਗਾਂ ਨੂੰ ਬਲਾਕ ਬਾਹਰ ਤੋਂ ਪਹੁੰਚਣਾ ਸਮਰੱਥਨ ਹੈ。

ਇੰਸਟੈਂਸ

{ 
  var x = 10; 
}
// ਇੱਥੇ x ਦਾ ਵਰਤੋਂ ਕੀਤੀ ਜਾ ਸਕਦੀ

ES2015 ਤੋਂ ਪਹਿਲਾਂ ਜਾਵਾਸਕ੍ਰਿਪਟ ਵਿੱਚ ਬਲਾਕ ਅਧਾਰਤ ਖੇਤਰ ਨਹੀਂ ਸੀ

ਵਰਤੋਂ let ਕੀਤੀਆਂ ਕੀਤੀਆਂ ਐਲੀਮੈਂਟਸ ਨੂੰ ਬਲਾਕ ਅਧਾਰਤ ਖੇਤਰ ਦੇ ਮੁੱਲ ਵਰਗਾਂ ਵਜੋਂ ਨਿਰਧਾਰਿਤ ਕਰਦੀ ਹੈ。

ਬਲਾਕ ਵਿੱਚ {} ਬਲਾਕ ਵਿੱਚ ਨਿਰਧਾਰਿਤ ਮੁੱਲ ਵਰਗਾਂ ਨੂੰ ਬਲਾਕ ਬਾਹਰ ਤੋਂ ਪਹੁੰਚਣਾ ਨਹੀਂ ਸਮਰੱਥਨ ਹੈ:

ਇੰਸਟੈਂਸ

{ 
  let x = 10;
}
// ਇੱਥੇ x ਦਾ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ

ਮੁੜ ਨਿਰਧਾਰਣ ਮੁੱਲ ਵਰਗਾਂ

ਵਰਤੋਂ var ਕੀਤੀਆਂ ਕੀਤੀਆਂ ਮੁੱਲ ਵਰਗਾਂ ਦੀ ਮੁੜ ਨਿਰਧਾਰਣ ਸਮੱਸਿਆ ਪੈਦਾ ਕਰਦੀ ਹੈ。

ਬਲਾਕ ਵਿੱਚ ਮੁੱਲ ਵਰਗਾਂ ਦੀ ਮੁੜ ਨਿਰਧਾਰਣ ਬਲਾਕ ਬਾਹਰ ਦੇ ਮੁੱਲ ਵਰਗਾਂ ਨੂੰ ਮੁੜ ਨਿਰਧਾਰਣ ਕਰਦੀ ਹੈ:

ਇੰਸਟੈਂਸ

var x = 10;
// ਇੱਥੇ x ਦਾ ਮੁੱਲ 10 ਹੈ
{ 
  var x = 6;
  // ਇੱਥੇ x ਦਾ ਮੁੱਲ 6 ਹੈ
}
// ਇੱਥੇ x ਦਾ ਮੁੱਲ 6 ਹੈ

ਆਪਣੇ ਆਪ ਨਾਲ ਪ੍ਰਯੋਗ ਕਰੋ

ਵਰਤੋਂ let ਕੀਤੀਆਂ ਕੀਤੀਆਂ ਮੁੱਲ ਵਰਗਾਂ ਦੀ ਮੁੜ ਨਿਰਧਾਰਣ ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰ ਸਕਦੀ ਹੈ。

ਬਲਾਕ ਵਿੱਚ ਮੁੱਲ ਵਰਗਾਂ ਦੀ ਮੁੜ ਨਿਰਧਾਰਣ ਨਹੀਂ ਕਰਦੀ ਬਲਾਕ ਬਾਹਰ ਦੇ ਮੁੱਲ ਵਰਗਾਂ ਨੂੰ ਮੁੜ ਨਿਰਧਾਰਣ ਨਹੀਂ ਕਰਦੀ:

ਇੰਸਟੈਂਸ

var x = 10;
// ਇੱਥੇ x ਦਾ ਮੁੱਲ 10 ਹੈ
{ 
  let x = 6;
  // ਇੱਥੇ x ਦਾ ਮੁੱਲ 6 ਹੈ
}
// ਇੱਥੇ x ਦਾ ਮੁੱਲ 10 ਹੈ

ਆਪਣੇ ਆਪ ਨਾਲ ਪ੍ਰਯੋਗ ਕਰੋ

ਬਰਾਊਜ਼ਰ ਸਮਰਥਨ

ਇੰਟਰਨੈੱਟ ਐਕਸਪਲੋਰਰ 11 ਜਾਂ ਪੁਰਾਣੀਆਂ ਵਰਜਨਾਵਾਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਮਰਥਨ ਨਹੀਂ ਦਿੰਦੀਆਂ let ਕੀਤੀਆਂ ਕੀਤੀਆਂ:

ਹੇਠਲੇ ਸਾਰੇ ਪੱਧਰ ਵਿੱਚ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਮਰਥਿਤ let ਕੀਤੀਆਂ ਕੀਤੀਆਂ ਬਰਾਊਜ਼ਰ ਵਰਜਨਾਵਾਂ:

ਚਰੋਮ 49 آئی ای 12 / ایج فائر فاکس 44 سافری 11 آپرا 36
2016 مارچ 2015 جولائی 2015 جنوری 2017 ستمبر 2016 مارچ

لائن کچھوٹ

لائن میں استعمال کریں var:

ਇੰਸਟੈਂਸ

var i = 7;
for (var i = 0; i < 10; i++) {
  // کچھ بات
}
// یہاں، i 10 ہوگا

ਆਪਣੇ ਆਪ ਨਾਲ ਪ੍ਰਯੋਗ ਕਰੋ

لائن میں استعمال کریں let:

ਇੰਸਟੈਂਸ

let i = 7;
for (let i = 0; i < 10; i++) {
  // کچھ بات
}
// یہاں i 7 ہوگا

ਆਪਣੇ ਆਪ ਨਾਲ ਪ੍ਰਯੋਗ ਕਰੋ

پہلے مثال میں، لائن میں استعمال کردہ متغیر var بلاک کے باہر متغیر کو دوبارہ ناگنجار کردا گیا

دوسرے مثال میں، لائن میں استعمال کردہ متغیر let بلاک کے باہر متغیر کو دوبارہ نہیں ناگنجار کردا گیا

اگر لائن میں استعمال کردیں تو let متغیر i کو اعلان کردیا گیا، تو صرف لائن میں متغیر i دیکھا جا سکتا ہے جو کیں

فنکشن کچھوٹ

فنکشن میں متغیرات کا اعلان کردیں تو، استعمال کریں var اور let بھی مماثل ہیں。

وہ دونوںفنکشن کچھوٹ:

function myFunction() {
  var carName = "porsche";   // فنکشن کچھوٹ
}
function myFunction() {
  let carName = "porsche";   // فنکشن کچھوٹ
}

عالمی کچھوٹ

اگر بلاک کے باہر اعلان کردیں تو var اور let بھی مماثل ہیں。

وہ دونوںعالمی کچھوٹ:

var x = 10;       // عالمی کچھوٹ
let y = 6;       // عالمی کچھوٹ

HTML میں عالمی متغیرات

JavaScript کے استعمال میں، عالمی کچھوٹ JavaScript ماحول ہے。

HTML میں، عالمی کچھوٹ window شیئٹ ہے。

ਦੁਆਰਾ var کلمات کلیدی کے ذریعہ تعریف کردہ عالمی متغیرات window شیئٹ میں ملتی ہیں:

ਇੰਸਟੈਂਸ

var carName = "porsche";
// اس کے کوڈ میں window.carName استعمال کریں

ਆਪਣੇ ਆਪ ਨਾਲ ਪ੍ਰਯੋਗ ਕਰੋ

ਦੁਆਰਾ let کلمات کلیدی کے ذریعہ تعریف کردہ عالمی متغیرات window شیئٹ نہیں ملتی ہیں:

ਇੰਸਟੈਂਸ

let carName = "porsche";
// اس کے کوڈ میں window.carName استعمال نہیں کریں

ਆਪਣੇ ਆਪ ਨਾਲ ਪ੍ਰਯੋਗ ਕਰੋ

دوبارہ نامزد کریں

برنامه کے کسی بھی مقام پر استعمال کی اجازت ہے var JavaScript متغیر دوبارہ نامزد کریں:

ਇੰਸਟੈਂਸ

var x = 10;
// اب، x 10 ہوگا
var x = 6;
// اب، x 6 ہوگا

ਆਪਣੇ ਆਪ ਨਾਲ ਪ੍ਰਯੋਗ ਕਰੋ

ਸਮਾਨ ਉਦੇਸ਼ ਵਿੱਚ ਜਾਂ ਸਮਾਨ ਬਲਕ ਵਿੱਚ ਦੁਆਰਾ let ਮੁੜ ਐਲਾਨ ਇੱਕ var ਵੇਰਿਆਬਲ ਮੁੜ ਐਲਾਨ ਪ੍ਰਵਾਨ ਨਹੀਂ ਹੈ:

ਇੰਸਟੈਂਸ

var x = 10;       // اجاز دیکھا جا
let x = 6;       // ناگنجار
{
  var x = 10;   // اجاز دیکھا جا
  let x = 6;   // ناگنجار
}

ਸਮਾਨ ਉਦੇਸ਼ ਵਿੱਚ ਜਾਂ ਸਮਾਨ ਬਲਕ ਵਿੱਚ ਦੁਆਰਾ let ਮੁੜ ਐਲਾਨ ਇੱਕ let ਵੇਰਿਆਬਲ ਮੁੜ ਐਲਾਨ ਪ੍ਰਵਾਨ ਨਹੀਂ ਹੈ:

ਇੰਸਟੈਂਸ

let x = 10;       // ਪ੍ਰਵਾਨ
let x = 6;       // ناگنجار
{
  let x = 10;   // ਪ੍ਰਵਾਨ
  let x = 6;   // ناگنجار
}

ਸਮਾਨ ਉਦੇਸ਼ ਵਿੱਚ ਜਾਂ ਸਮਾਨ ਬਲਕ ਵਿੱਚ ਦੁਆਰਾ var ਮੁੜ ਐਲਾਨ ਇੱਕ let ਵੇਰਿਆਬਲ ਮੁੜ ਐਲਾਨ ਪ੍ਰਵਾਨ ਨਹੀਂ ਹੈ:

ਇੰਸਟੈਂਸ

let x = 10;       // ਪ੍ਰਵਾਨ
var x = 6;       // ਅਪ੍ਰਵਾਨ
{
  let x = 10;   // ਪ੍ਰਵਾਨ
  var x = 6;   // ਅਪ੍ਰਵਾਨ
}

ਵੱਖਰੇ ਉਦੇਸ਼ ਜਾਂ ਬਲਕ ਵਿੱਚ ਦੁਆਰਾ let ਵੇਰਿਆਬਲ ਮੁੜ ਐਲਾਨ ਪ੍ਰਵਾਨ ਹੈ:

ਇੰਸਟੈਂਸ

let x = 6;       // ਪ੍ਰਵਾਨ
{
  let x = 7;   // ਪ੍ਰਵਾਨ
}
{
  let x = 8;   // ਪ੍ਰਵਾਨ
}

ਆਪਣੇ ਆਪ ਨਾਲ ਪ੍ਰਯੋਗ ਕਰੋ

ਉੱਚਾਰਣ

ਦੁਆਰਾ var ਐਲਾਨ ਕੀਤੀ ਗਈ ਵੇਰਿਆਬਲਉੱਚਾਰਣਉੱਚਾ ਹੁੰਦੇ ਹਨ।ਜੇਕਰ ਤੁਸੀਂ ਉੱਚਾਰਣ (Hoisting) ਨੂੰ ਨਹੀਂ ਜਾਣਦੇ ਹੋ, ਤਾਂ ਸਾਡੇ Hoisting ਚਾਪਟਰ ਨੂੰ ਪੜ੍ਹੋ。

ਤੁਸੀਂ ਵੇਰਿਆਬਲ ਐਲਾਨ ਤੋਂ ਪਹਿਲਾਂ ਇਸ ਦਾ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ:

ਇੰਸਟੈਂਸ

// ਇੱਥੇ, ਤੁਸੀਂ carName ਦਾ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ
var carName;

ਆਪਣੇ ਆਪ ਨਾਲ ਪ੍ਰਯੋਗ ਕਰੋ

ਦੁਆਰਾ let ਐਲਾਨ ਕੀਤੀ ਗਈ ਵੇਰਿਆਬਲ ਨਹੀਂ ਉੱਚ ਤੱਕ ਉੱਚਾ ਹੁੰਦੀ ਹੈ。

ਐਲਾਨ ਵਿੱਚ let ਵੇਰਿਆਬਲ ਦੀ ਪਹਿਲਾਂ ਤੋਂ ਵਰਤੋਂ ਕਰਨ ਨਾਲ ReferenceError ਹੁੰਦਾ ਹੈ。

ਵੇਰਿਆਬਲ ਬਲਕ ਦੇ ਸ਼ੁਰੂ ਤੋਂ ਹੀ "ਤਾਜ਼ਾ ਮੌਤ" ਵਿੱਚ ਰਹਿੰਦੀ ਹੈ, ਜਦੋਂ ਤੱਕ ਇਸ ਦਾ ਐਲਾਨ ਨਹੀਂ ਹੁੰਦਾ

ਇੰਸਟੈਂਸ

// ਇੱਥੇ, ਤੁਸੀਂ carName ਦਾ ਵਰਤੋਂ ਨਹੀਂ ਕਰ ਸਕਦੇ
let carName;