JavaScript Basics: Callbacks, Objects, اور Execution
JavaScript دو طریقوں سے چلتی ہے: synchronous اور asynchronous۔
Synchronous کوڈ لائن بہ لائن چلتا ہے۔ انجن ایک کام مکمل کرنے کے بعد ہی اگلا کام شروع کرتا ہے۔ یہ اگلے کام کو چلنے سے روک دیتا ہے۔
Asynchronous کوڈ کاموں کو آزادانہ طور پر چلنے کی اجازت دیتا ہے۔ آپ ایک کام شروع کرتے ہیں اور انتظار کے دوران اگلے کام کی طرف بڑھ جاتے ہیں۔ یہ ویب ایپس میں کارکردگی (performance) کو بہتر بناتا ہے۔
اہم asynchronous تصورات: • Callbacks: وہ فنکشنز جو بعد میں چلانے کے لیے دوسرے فنکشنز میں پاس کیے جاتے ہیں۔ • Promises: وہ آبجیکٹس جو کسی آپریشن کے نتیجے کی نمائندگی کرتے ہیں۔ • Async/Await: asynchronous کوڈ کو پڑھنے میں آسان بنانے کے لیے جدید سنٹیکس (syntax)۔ • Event Loop: وہ سسٹم جو کاموں کے عمل (execution) کو مینیج کرتا ہے۔
Processes اور Threads کو سمجھنا
ایک process ایک چلنے والا پروگرام (program in execution) ہے۔ • Processes الگ تھلگ (isolated) ہوتے ہیں۔ • وہ میموری شیئر نہیں کرتے۔ • ایک process چائلڈ processes بنا سکتا ہے۔ • انہیں ختم (terminate) ہونے میں زیادہ وقت لگتا ہے۔
ایک thread ایک process کا ایک حصہ (segment) ہے۔ • ایک process کے بہت سے threads ہو سکتے ہیں۔ • Threads میموری شیئر کرتے ہیں۔ • انہیں ختم ہونے میں کم وقت لگتا ہے۔
Callback Function کیا ہے؟
Callback ایک فنکشن ہے جسے بطور argument پاس کیا جاتا ہے۔ بیرونی فنکشن کسی کام کو مکمل کرنے کے لیے اسے کال کرتا ہے۔ Callbacks کا استعمال ان کاموں کے لیے کریں: • Asynchronous کام جیسے کہ ڈیٹا حاصل کرنا (fetching data)۔ • Event handling جیسے کہ بٹن کلک کرنا۔ • دوبارہ استعمال ہونے والا کوڈ (reusable code) بنانا۔
JavaScript Objects
ایک Object ڈیٹا کو key-value جوڑوں میں محفوظ کرتا ہے۔ Keys، values کی شناخت کرتی ہیں۔ Values primitives، دوسرے objects، یا functions ہو سکتے ہیں۔
آپ دو طریقوں سے objects بنا سکتے ہیں:
Object Literals: پراپرٹیز (properties) کی تعریف کے لیے کرلی بریکٹس (curly braces) کا استعمال کریں۔ مثال:
let user = {name: "Sourav", age: 23};Object Constructor:
new Object()کمانڈ کا استعمال کریں۔ مثال:let user = new Object();
Objects قابلِ تبدیلی (mutable) ہوتے ہیں۔ آپ کسی بھی وقت پراپرٹیز کو شامل، تبدیل یا حذف کر سکتے ہیں۔ یہ آپ کو متعلقہ ڈیٹا کو ایک ساتھ گروپ کرنے میں مدد دیتا ہے۔