جسٹ اسکریپٹ کا بہترین عمل
- پچھلے پیج جسٹاگرافک استایل گائیڈلائن
- بعد کا پہلا پیج جسٹاگرافک خطا
از متغیرهای جهانی وجدید
و===
وeval()
از متغیرهای جهانی جلوگیری کنید
سعی کنید از متغیرهای جهانی به حداقل ممکن استفاده کنید.
این شامل تمام نوع دادهها، اشیاء و توابع است.
متغیرهای جهانی و توابع توسط اسکریپتهای دیگر میتوانند تغییر یابند.
از متغیرهای محلی استفاده کنید و یاد بگیرید که چگونه از آنها استفاده کنیدکلوز。
بستگی
همیشه متغیرهای محلی را تخصیص دهیدتمام متغیرهایی که در یک تابع استفاده میشوند باید به عنوانمتغیر
متغیرهای محلیلازم استاز طریق var با استفاده از کلمات کلیدی تخصیص دهید، در غیر این صورت آنها به متغیرهای جهانی تبدیل میشوند.
رژیم سختگیرانه (strict mode) تخصیص متغیرهای بدون تخصیص را مجاز نمیکند.
در بالا تخصیص داده شود
یک عادت خوب کدنویسی این است که تمام تخصیصها را در بالا هر بخش یا تابع قرار دهیم.
ایسا کرنے کا فائدہ یہ ہے:
- کد را تمیزتر میکند
- مکان خوبی برای پیدا کردن متغیرهای محلی فراهم میکند
- بهتر از جلوگیری از استفاده از متغیرهای جهانی غیرضروری
- ممکنترین کاهش مجدد تخصیصهای غیرضروری
// در بالا تخصیص داده شود var firstName, lastName, price, discount, fullPrice; // در آینده استفاده میشود firstName = "Bill"; lastName = "Gates"; price = 19.90; discount = 0.10; fullPrice = price * 100 / discount;
این میتواند برای متغیرهای حلقه نیز استفاده شود:
// در بالا تخصیص داده شود var i; // در آینده استفاده میشود for (i = 0; i < 5; i++) {
به طور پیشفرض، JavaScript تمام تخصیصها را به بالای کد میبرد (hoisting JavaScript).
ابتدایی کردن متغیرها
وارئی کاوتا کریجئے کا استعمال کرنا اچھی عادت ہے جب آپ وارئی کاوتا کرتے ہیں
ایسا کرنے کا فائدہ یہ ہے:
- کمتر آلودگی والی کوڈ
- ایک دوسرے سے الگ سلسلے میں ورت کا ابتدائی کاوتا کریجئے
- غیر تعریف شدہ ورت سے بچیجئے
// شروع میں اعلان اور ابتدائی کاوتا کریجئے var firstName = "", lastName = "", price = 0, discount = 0, fullPrice = 0, myArray = [], myObject = {};
متغیر کی ابتدائی کاوتا کا استعمال ہم کو متوقع استعمال اور متوقع نوعیت کی معلومات دیتا ہے
شمار، سٹرنگ یا بولین آپریشن کا استعمال نہ کریجئے
پہلے سے ہی شمار، سٹرنگ یا بولین کی طرح سے اصل ورت کے طور پر دیکھیجئے، نہ کہ آپریشن
اگر ان نوع کا اعلان آپریشن کا استعمال کیا جائے تو آپریشن کی رفتار میں آمدار اور ناخوشایند اثرات پیدا ہو سکتے ہیں:
مثال
var x = "Bill"; var y = new String("Bill"); (x === y) // نتیجہ false ہوگا، کیونکہ x سٹرنگ ہے اور y آپریشن
یا اور بدتر:
مثال
var x = new String("Bill"); var y = new String("Bill"); (x == y) // نتیجہ false ہوگا، کیونکہ آپ نہیں کچھ اپنے آپ میں اپنے آپ کا مقابلو کرسکتا ہیں
new Object() کا استعمال نہ کریجئے
- {} کا استعمال کریجئے تاکہ new Object() کا استعمال نکال سکیئے
- "" کا استعمال کریجئے تاکہ new String() کا استعمال نکال سکیئے
- 0 کا استعمال کریجئے تاکہ new Number() کا استعمال نکال سکیئے
- false کا استعمال کریجئے تاکہ new Boolean() کا استعمال نکال سکیئے
- [] کا استعمال کریجئے تاکہ new Array() کا استعمال نکال سکیئے
- /()/ کا استعمال کریجئے تاکہ new RegExp() کا استعمال نکال سکیئے
- function (){} کا استعمال کریجئے تاکہ new Function() کا استعمال نکال سکیئے
مثال
var x1 = {}; // نئی آپریشن var x2 = ""; // نئی اصل سٹرنگ ورت var x3 = 0; // نئی اصل شمار ورت var x4 = false; // نئی اصل بولین ورت var x5 = []; // نئی آرائیلی آپریشن var x6 = /()/; // نئی ریگولر ایکسیپشن var x7 = function(){}; // نئی فونکشن آپریشن
خود بخود نوع تبدیلی کا معنا بتائیجئے
پتہ لگائیجئے کہ شمار کسی کس طرح سے ناگوار طور پر کوئی سٹرنگ یا NaN
نوت ا نمبر
جاوااسکریپٹ کسی بغیر نوع میں کا تعلق رکھتا ہے۔ متغیر کسی بغیر نوع کا داده کا کاوتا رکھ سکتا ہے اور متغیر اپنے نوعیت کو بدل سکتا ہے:
مثال
var x = "Hello"; // typeof x به رشته است x = 5; // typeof x را به عدد تغییر دهید
اگر عملیات ریاضی انجام دهید، جاوااسکریپت میتواند اعداد را به رشته تبدیل کند:
مثال
var x = 5 + 7; // x.valueOf() به 12 است، typeof x است数值 var x = 5 + "7"; // x.valueOf() به 57 است، typeof x است رشته var x = "5" + 7; // x.valueOf() به 57 است، typeof x است رشته var x = 5 - 7; // x.valueOf() به -2 است، typeof x است数值 var x = 5 - "7"; // x.valueOf() به -2 است، typeof x است数值 var x = "5" - 7; // x.valueOf() به -2 است، typeof x است数值 var x = 5 - "x"; // x.valueOf() به NaN است، typeof x است数值
با کسر کردن رشته از رشته، خطا رخ نمیدهد بلکه بازمیگردد به NaN
:(عدد نیست):
مثال
"Hello" - "Dolly" // بازمیگردد به NaN
برای مقایسه از === استفاده کنید
==
آپراتورهای مقایسه همیشه قبل از مقایسه نوع آنها را تبدیل میکنند (برای تطابق نوع).
===
آپراتورها مقدار و نوع آنها را به اجبار مقایسه میکنند:
مثال
0 == ""; // true 1 == "1"; // true 1 == true; // true 0 === ""; // false 1 === "1"; // false 1 === true; // false
استفاده از مقدار پیشفرض پارامتر
اگر در زمان فراخوانی فونکشن یک پارامتر کم باشد، مقدار این پارامتر کم تنظیم میشود به undefined
。
undefined
مقدار خواهد شد که کد شما را خراب کند. تنظیم مقدار پیشفرض برای پارامترها عادت خوبی است.
مثال
فونکشن myFunction(x, y) { اگر (y === undefined) { y = 0; } }
فونکشن پارامٹر کے بارے میں مزید پڑھیںفونکشن پارامٹراس باب کو پڑھنے کے لئے مزید پڑھیں
سویچ کی ختم کردگی کے لئے درجہ درج استعمال کریں
استعمال کریں درجہ درج
آپ کی سویچ کو ختم کرنے کے لئے استعمال کریں سویچ
کہا جائے، اگر آپ اس کی ضرورت نہیں سمجھتے۔
مثال
سویچ (نیو ڈیٹا(). getDay()) { کیس 0: day = "Sunday"; بریک; کیس 1: day = "Monday"; بریک; کیس 2: day = "Tuesday"; بریک; کیس 3: day = "Wednesday"; بریک; کیس 4: day = "Thursday"; بریک; کیس 5: day = "Friday"; بریک; کیس 6: day = "Saturday"; بریک; درجہ درج day = "Unknown"; }
eval() کا استعمال روکئیں
eval()
فونکشن، ٹیکسٹ کو کوڈ کے طور پر اجازت دینے کے لئے استعمال ہوتی ہیں۔ تقریباً سبھی صورتوں میں اس کا استعمال ضروری نہیں ہوتا ہے۔
کسی بھی کوڈ کو چلانے کی اجازت دینے کی وجہ سے، یہ اپنے آپ میں ایک سیکورٹی مشکل بھی ہوتا ہے۔
- پچھلے پیج جسٹاگرافک استایل گائیڈلائن
- بعد کا پہلا پیج جسٹاگرافک خطا