Skip to content

Latest commit

 

History

History
163 lines (103 loc) · 8.05 KB

File metadata and controls

163 lines (103 loc) · 8.05 KB

Code structure

پہلی چیز جس کا ہم مطالعہ کریں گے وہ کوڈ کے بنیادی عناصر ہیں۔

Statements

بیانات (Statements) نحو کی تعمیری اشکال اور کمانڈز ہیں جو عمل انجام دیتے ہیں۔

ہم نے پہلے ہی ایک بیان دیکھا ہے، alert('Hello, world!')، جو پیغام "Hello, world!" کو دکھاتا ہے۔

ہم اپنی کوڈ میں جتنے چاہیں بیانات رکھ سکتے ہیں۔ بیانات کو سیمی کالن کے ساتھ الگ کیا جا سکتا ہے۔

مثال کے طور پر، یہاں ہم "Hello World" کو دو الرٹس میں تقسیم کر رہے ہیں:

alert("Hello");
alert("World");

عام طور پر، بیانات کو علیحدہ لائنوں پر لکھا جاتا ہے تاکہ کوڈ کو پڑھنے میں آسانی ہو:

alert("Hello");
alert("World");

Semicolons [#semicolon]

اگر ایک لائن بریک موجود ہو تو زیادہ تر معاملات میں سیمی کالن کو چھوڑا جا سکتا ہے۔

یہ بھی کام کرے گا:

alert("Hello");
alert("World");

یہاں ( Javascript ), لائن بریک کو "مضمون" سیمیکولن سے تعبیر کرتا ہے۔ اسے کہتے ہیں۔ automatic semicolon insertion.

زیادہ تر معاملات میں، ایک نیا لائن سیمی کالن کو ظاہر کرتا ہے۔ لیکن "زیادہ تر معاملات" کا مطلب "ہمیشہ" نہیں ہوتا!

ایسے معاملات ہوتے ہیں جہاں نیا لائن سیمی کالن کا مطلب نہیں ہوتا۔ مثال کے طور پر :

alert(3 + 1 + 2);

کوڈ کا نتیجہ 6 ہے کیونکہ جاوا اسکرپٹ یہاں نیم وقفے (semicolon) شامل نہیں کرتی۔ یہ واضح ہے کہ اگر لائن ایک پلس "+" کے ساتھ ختم ہوتی ہے، تو یہ "نامکمل اظہار" ہے، اس لیے وہاں نیم وقفے کا اضافہ غلط ہوگا۔ اور اس صورت میں، یہ درست کام کرتا ہے۔

لیکن ایسے حالات بھی ہیں جہاں جاوا اسکرپٹ کو نیم وقفہ کی ضرورت ہوتی ہے اور وہ اس کا اندازہ نہیں لگا پاتی۔

ایسی صورتوں میں جو غلطیاں ہوتی ہیں وہ تلاش کرنا اور درست کرنا مشکل ہوسکتا ہے :

اگر آپ ایک غلطی کی ٹھوس مثال دیکھنے کے لیے متجسس ہیں، تو یہ کوڈ دیکھیں:


```js run
;alert("Hello")

;[1, 2].forEach(alert)
```

ابھی براکٹس `[]` اور `forEach` کے معنی پر سوچنے کی ضرورت نہیں ہے۔ ہم انہیں بعد میں سیکھیں گے۔ ابھی بس کوڈ چلانے کا نتیجہ یاد رکھیں: یہ `Hello` دکھاتا ہے، پھر `1` اور پھر `2`۔


اب `alert` کے بعد نیم وقفہ نکالتے ہیں :


```js run no-beautify
alert("Hello")

[1, 2].forEach(alert);
```

اوپر کے کوڈ کے مقابلے میں فرق صرف ایک حرف ہے: پہلی لائن کے آخر میں نیم وقفہ ختم کر دیا گیا ہے۔

اگر ہم اس کوڈ کو چلائیں تو صرف پہلا `Hello` دکھائی دے گا (اور ایک غلطی ہوگی، جسے دیکھنے کے لیے آپ کو کنسول کھولنا پڑسکتا ہے)۔ اب نمبر نہیں دکھتے۔

ایسا اس لیے ہے کہ جاوا اسکرپٹ اسکوائر بریکٹ `[...]` سے پہلے نیم وقفہ فرض نہیں کرتی۔ لہذا، آخری مثال میں کوڈ کو ایک واحد اسٹیٹمنٹ کے طور پر لیا جاتا ہے۔

انجن اسے کچھ یوں دیکھتا ہے:

```js run no-beautify
alert("Hello")[1, 2].forEach(alert);
```

یہ عجیب لگتا ہے، ہے نا؟ اس صورت میں اس کا یکجا ہونا درست نہیں ہے۔ ہمیں کوڈ کو صحیح طریقے سے چلانے کے لیے `alert` کے بعد نیم وقفہ رکھنا ہوگا۔

ایسا دوسرے حالات میں بھی ہو سکتا ہے۔

ہم تجویز کرتے ہیں کہ اسٹیٹمنٹس (statements) کے درمیان نیم وقفے لگائیں، چاہے وہ نئی لائنوں سے الگ ہوں۔ یہ اصول کمیونٹی میں وسیع پیمانے پر اپنایا گیا ہے۔ ایک بار پھر نوٹ کریں کہ یہ ممکن ہے کہ زیادہ تر وقت نیم وقفے چھوڑ دیے جائیں۔ لیکن یہ زیادہ محفوظ ہے -- خاص طور پر ایک ابتدائی کے لیے -- کہ انہیں استعمال کریں۔

Comments [#code-comments]

وقت کے ساتھ، پروگرام مزید پیچیدہ ہوتے جاتے ہیں۔ ایسے میں تبصروں کا اضافہ ضروری ہو جاتا ہے جو کوڈ کے مقصد اور وجوہات کو بیان کرتے ہیں۔

تبصرے اسکرپٹ کے کسی بھی حصے میں ڈالے جا سکتے ہیں۔ ان کا کوڈ کے نفاذ پر کوئی اثر نہیں ہوتا کیونکہ انجن انہیں نظر انداز کر دیتا ہے۔

ایک لائن والے تبصرے دو فارورڈ سلیش // سے شروع ہوتے ہیں۔.

لائن کے باقی حصے کو تبصرہ بنا دیا جاتا ہے۔ یہ اپنی لائن میں مکمل طور پر جگہ لے سکتا ہے یا کسی اسٹیٹمنٹ کے بعد آ سکتا ہے۔

جیسے یہاں:

// یہ تبصرہ اپنی لائن میں ہے
;alert("Hello")

// یہ تبصرہ اسٹیٹمنٹ کے بعد ہے
;alert("World")

کثیر لائن تبصرے فارورڈ سلیش اور اسٹار */ سے شروع ہوتے ہیں اور اسٹار اور فارورڈ سلیش /* پر ختم ہوتے ہیں۔

Like this:

/* دو پیغامات کی مثال۔
یہ ایک کثیر لائن تبصرہ ہے۔
*/
;alert("Hello")
;alert("World")

تبصرے کے مواد کو نظر انداز کیا جاتا ہے، لہذا اگر ہم کوڈ کو /_ ... _/ کے اندر ڈالیں تو وہ چلایا نہیں جائے گا۔

کبھی کبھی کوڈ کے کسی حصے کو عارضی طور پر غیر فعال کرنا کارآمد ہو سکتا ہے:

/* کوڈ کو تبصرہ میں ڈالنا
;alert('Hello')
*/
;alert("World")
زیادہ تر ایڈیٹرز میں، کسی لائن کو `key:Ctrl+/` دباکر ایک لائن تبصرہ میں تبدیل کیا جا سکتا ہے اور `key:Ctrl+Shift+/` جیسا کچھ -- کثیر لائن تبصرے کے لیے (کوڈ کے ایک حصے کو منتخب کریں اور ہاٹکی دبائیں)۔ میک کے لیے، `key:Ctrl` کی جگہ `key:Cmd` اور `key:Shift` کی جگہ `key:Option` آزمائیں۔

ایک `*/  ..  /*  ` دوسرے `*/  ..  /*  ` کے اندر نہیں ہو سکتا۔

ایسا کوڈ غلطی کے ساتھ ختم ہو جائے گا:

```js run no-beautify
*/
     /* نیسٹڈ تبصرہ ؟!? /*
*/
;alert( 'World' )
```

براہ کرم اپنے کوڈ پر تبصرہ کرنے سے نہ ہچکچائیں۔

تبصرے کوڈ کی مجموعی لمبائی میں اضافہ کرتے ہیں، لیکن یہ کوئی مسئلہ نہیں ہے۔ بہت سے ایسے ٹولز ہیں جو کوڈ کو کم کرتے ہیں تاکہ پروڈکشن سرور پر اپ لوڈ کرنے سے پہلے تبصرے ہٹا دیے جائیں۔ اس طرح تبصرے کام کرنے والے اسکرپٹس میں ظاہر نہیں ہوتے۔ لہذا، تبصرے کا پروڈکشن پر کوئی منفی اثر نہیں ہوتا۔

بعد میں اس ٹیوٹوریل میں ایک باب info:code-quality ہوگا جو بہتر تبصرے لکھنے کا طریقہ بھی بیان کرے گا۔