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

ECMAScript 2015

ES2015 نے دو اہم جاوا اسکریپٹ نیو کلیدی کا تعاون دیا ہے:let اور const.

از طریق const تعین کردہ متغیرات سے let تعین کردہ متغیرات کا وقعت فرق رکھتا ہے، لیکن وہ ایسا نہیں دوبارہ مقادیر دی دینا چاہئیے:

مثال

const PI = 3.141592653589793;
PI = 3.14;      // بنا میں خاطی میں آجائے گا
PI = PI + 10;   // بنا میں خاطی میں بھی آجائے گا

آزمایش کنید

بلاک اسکوپ

میںبلاک اسکوپبلاک میں استعمال کیا جاتا ہے const اعلان کردہ متغیر let متغیر کچھ متلعصی کا حامل

اس مثال میں، ایکس بلاک میں اعلان کی گئی، یہ بلاک کے باہر کی اعلان کی گئی ایکس سے فرق رکھتا ہے:

مثال

var x = 10;
// یہاں، ایکس 10 ہے
{ 
  const x = 6;
  // یہاں، ایکس 6 ہے
}
// یہاں، ایکس 10 ہے

آزمایش کنید

پچھلے چپ میں آپ نے جاوا اسکریپت لیٹ مدرسہ میں بلاک اسکوپ کا علم بڑھا

اعلان کے وقت مقادیر دی دینا چاہئیے

جاوا اسکریپٹ const متغیر کو اعلان کے وقت مقادیر دی دینا چاہئیے:

غلط

const PI;
PI = 3.14159265359;

درست

const PI = 3.14159265359;

صادقین کانستن نہیں ہیں

کلیدی الفاظ const کچھ حیثیت میں گمراہ کردار ادا کرتا ہے。

یہ کانستن وقعت کا معاملہ نہیں دیتا، وہ وقعت کی کانستن رجوع دیتا ہے。

اس لئے، آپ کانستن بنیادی وقعت بدل نہیں سکتے، لیکن آپ کانستن آؤٹ پارٹ کی خاصتیز بدل سکتے ہیں。

بنیادی وقعت

اگر آپ ایک بنیادی وقعت کانستن کو دینا، تو آپ بنیادی وقعت بدل نہیں سکتے:

مثال

const PI = 3.141592653589793;
PI = 3.14;      // بنا میں خاطی میں آجائے گا
PI = PI + 10;   // بنا میں خاطی میں بھی آجائے گا

آزمایش کنید

کانستن آؤٹ پارٹ بدل سکتا ہے:

آپ کانستن آؤٹ پارٹ کی خاصتیز بدل سکتے ہیں:

مثال

// آپ کانستن آؤٹ پارٹ کا تعین کرسکتے ہیں:
const car = {type:"porsche", model:"911", color:"Black"};
// آپ کچھ خاصتیز بدل سکتے ہیں:
car.color = "White";
// می‌توانید ویژگی اضافه کنید:
car.owner = "Bill";

آزمایش کنید

اما نمی‌توانید یک شیء متغیر را دوباره تخصیص دهید:

مثال

const car = {type:"porsche", model:"911", color:"Black"};
car = {type:"Volvo", model:"XC60", color:"White"};    // ERROR

آزمایش کنید

آرایه متغیر می‌تواند تغییر کند

می‌توانید عنصر آرایه متغیر را تغییر دهید:

مثال

// می‌توانید یک آرایه متغیر ایجاد کنید:
const cars = ["Audi", "BMW", "porsche"];
// می‌توانید عنصر را تغییر دهید:
cars[0] = "Honda";
// می‌توانید عنصر اضافه کنید:
cars.push("Volvo");

آزمایش کنید

اما نمی‌توانید یک آرایه متغیر را دوباره تخصیص دهید:

مثال

const cars = ["Audi", "BMW", "porsche"];
cars = ["Honda", "Toyota", "Volvo"];    // ERROR

آزمایش کنید

پشتیبانی مرورگر

Internet Explorer 10 و نسخه‌های قبلی آن پشتیبانی نمی‌کنند const واژه‌های کلیدی.

جدول زیر نسخه‌های مرورگر را نشان می‌دهد که اولین بار از کلید const پشتیبانی کردند:

Chrome 49 IE / Edge 11 Firefox 36 Safari 10 Opera 36
مارس 2016 اکتبر 2013 فوریه 2015 سپتامبر 2016 مارس 2016

تعریف مجدد

در هر نقطه از برنامه مجاز است که JavaScript را دوباره تعریف کنید var متغیر:

مثال

var x = 2;    // مجاز
var x = 3;    // مجاز
x = 4;        // مجاز

در یک محدوده یا بلوک عملی، مجاز نیست که یک متغیر موجود را دوباره تعریف یا تخصیص دهیم: var یا let متغیر را دوباره تعریف یا تخصیص دهید به const:

مثال

var x = 2;         // مجاز
const x = 2;       // نا允许
{
  let x = 2;     // مجاز
  const x = 2;   // نا允许
}

در یک محدوده یا بلوک عملی، مجاز نیست که یک متغیر const را دوباره تعریف یا تخصیص دهیم:

مثال

const x = 2;       // مجاز
const x = 3;       // نا允许
x = 3;             // نا允许
var x = 3;         // نا允许
let x = 3;         // نا允许
{
  const x = 2;   // مجاز
  const x = 3;   // مجاز نیست
  x = 3;         // مجاز نیست
  var x = 3;     // مجاز نیست
  let x = 3;     // مجاز نیست
}

در حوزه یا بلوک دیگری دوباره تعریف شوند const این مجاز است:

مثال

const x = 2;       // مجاز
{
  const x = 3;   // مجاز
}
{
  const x = 4;   // مجاز
}

بلند شدن

از طریق var متغیرهایی که تعریف شده‌اندبلند شدنبه بالا بلند می‌شوند. اگر با مفهوم بلند شدن (Hoisting) آشنا نیستید، این فصل را مطالعه کنید.

شما می‌توانید از متغیر var قبل از تعریف آن استفاده کنید:

مثال

carName = "Volvo";    // شما می‌توانید در اینجا از carName استفاده کنید
var carName;

آزمایش کنید

از طریق const متغیرهایی که تعریف شده‌اند به بالا بلند نمی‌شوند.

const متغیرها نمی‌توانند قبل از تعریف از خودشان استفاده شوند:

مثال

carName = "Volvo";    // شما نمی‌توانید در اینجا از carName استفاده کنید
const carName = "Volvo";