جسٹ سکریپٹ کا هوئسٹنگ

ہائسٹنگ (Hoisting) جاوا اسکریپٹ کا دلیلیفارم کو اعلیٰ کی جاتی کا طبیعی عمل ہے۔

جاوا اسکریپٹ کا دلیلیفارم کو اعلیٰ کیا جاتا ہے

جاوا اسکریپٹ میں، متغیر کا استعمال کئے جانے کے بعد اس کا دلیلیفارم کیا جاسکتا ہے۔

یعنی، متغیر کی دلیلیفارم سے پہلے اس کا استعمال کیا جاسکتا ہے۔

مثال 1 اورمثال 2 کا نتیجہ ایک ساتھ ہوتا ہے:

مثال 1

x = 5; // 5 کو x میں منتقل کریجئے
elem = document.getElementById("demo"); // عناصر کو تلاش کریں
elem.innerHTML = x;                     // عناصر میں x دکھائیجئے
var x; // x کا دلیلیفارم

آپ خود سنجیدار کریں!

مثال 2

var x; // x کا دلیلیفارم
x = 5; // 5 کو x میں منتقل کریجئے
elem = document.getElementById("demo"); // عناصر کو تلاش کریں
elem.innerHTML = x;                     // عناصر میں x دکھائیجئے

آپ خود سنجیدار کریں!

یہ کچھ سمجھنے کے لئے، آپ کو لفظ "ہائسٹنگ" کو سمجھنا پڑتا ہے۔

ہائسٹنگ جاوا اسکریپٹ کا تمام دلیلیفارم کو موجودہ علاقے کی اعلیٰ کی جاتی کا طبیعی عمل ہے (اعلیٰ کیا جاتا ہے جس سے اس اسکریپٹ یا موجودہ فنکشن کا اعلیٰ ہو)

لیٹ اور کنسٹ کلیدی الفاظ

کریپشن میں استعمال کریجئے، لیٹ یا کنسٹ دلیلیفارم کئے یا مستقل بنائے گئے متغیرات کو اعلیٰ نہیں کیا جاتا!

کریپشن میں لکھیجئے، جے ایس لیٹ / کنسٹ مطالعات کے لئے ملاحظہ:

جاوا اسکریپٹ کا ابتدائی بنانے کو اعلیٰ نہیں کراتا

جاوا اسکریپٹ صرف دلیلیفارم کو اعلیٰ کراتا ہے، نہ کہ ابتدائی بنانے کو۔

مثال 1 اورمثال 2 کا نتیجہ مختلف ہوتا ہے:

مثال 1

var x = 5; // x کو شروعات میں 5 سے دینا
var y = 7; // y کی ابتدائی بنانے
elem = document.getElementById("demo"); // عناصر کو تلاش کریں
elem.innerHTML = x + " " + y;           // x اور y کو دکھاوا

آپ خود سنجیدار کریں!

مثال 2

var x = 5; // x کو شروعات میں 5 سے دینا
elem = document.getElementById("demo"); // عناصر کو تلاش کریں
elem.innerHTML = x + " " + y;           // x اور y کو دکھاوا
var y = 7; // y کی ابتدائی بنانے 

آپ خود سنجیدار کریں!

آخری مثال میں y ابھی بغیر تعریف کا قائل کیا جاسکتا ہے؟

یہ اس لئے ہے کہ صرف دلیلیفارم (var y) نہ کہ ابتدائی بنانے (=7) اعلیٰ کی جاتی ہے۔

هوئسٹنگ کی وجہ سے، y اس کا استعمال کیا جانے سے پہلے اعلان کی گئی تھی، لیکن پہلے سے دینا نہیں کیا گیا تھا، لہذا y کا مطلب نہیں ہے

مثال 2 بھی ایسا ہی ہے:

مثال

var x = 5; // x کو شروعات میں 5 سے دینا
var y;     // y کو دکھائی دیں
elem = document.getElementById("demo"); // عناصر کو تلاش کریں
elem.innerHTML = x + " " + y;           // x اور y کو دکھاوا
y = 7;    // 7 کو y کو دینا

آپ خود سنجیدار کریں!

وارئی کو اعلیٰ کی جگہ پر اعلان کریں!

هوئسٹنگ (کثیر تعداد کے پروگرامروں کے لئے) جسٹا اسکریپٹ کا ایک ناشناختی یا چھوئی رفتار ہے

اگر پروگرامر ہوئسٹنگ کو نہیں سمجھتا تو پروگرام میں بگ (بگ) شامل ہوسکتے ہیں

بگ (بگ) کی روک تھام کی خاطر، ہر اسکوپ کی شروعات میں تمام وارئی کا اعلان کریں

یہ جسٹا اسکریپٹ کا کد تفسیر کرنے کا طریقہ ہے، لہذا اس عادت کو برقرار رکھیں

سخت موڈ میں جسٹا اسکریپٹ نہیں کسی غیر دکھائی جانے والی وارئی کا استعمال کراتا ہے

آپ کا اگلایا باب میں سیکھنے کا لازمی ہوگااستفاده strict”。