أحدث البرامج التعليمية وتطوير الشبكة
×

JS البرنامج التعليمي

JS الصفحة الرئيسية JS المقدمة JS ألى أين JS الناتج JS بناء الجملة JS البيانات JS تعليقات JS المتغيرات JS مشغلي JS علم الحساب JS مهمة JS أنواع البيانات JS وظائف JS الأجسام JS نطاق JS أحداث JS سلاسل JS طرق سلسلة JS أرقام JS طرق عدد JS الرياضيات JS التمور JS تاريخ تنسيقات JS تاريخ طرق JS المصفوفات JS طرق مجموعة JS القيم المنطقية JS مقارنات JS الظروف JS تحول JS حلقة غيرمنتهية For JS حلقة بينما JS استراحة JS نوع التحويل JS التعبير العادي JS أخطاء JS التصحيح JS الرفع JS الوضع الصارم JS دليل الاناقة JS أفضل الممارسات JS الأخطاء JS أداء JS الكلمات المحجوزة JS JSON

JS أشكال

أشكال التحقق من صحة API أشكال

JS موضوع

تعريفات الكائن خصائص الكائن طرق كائن نماذج الكائن

JS وظائف

تعاريف وظيفة وظيفة المعلمات وظيفة الاحتجاج الإغلاق وظيفة

JS HTML DOM

DOM مقدمة DOM أساليب DOM وثيقة DOM عناصر DOM HTML DOM CSS DOM الرسوم المتحركة DOM أحداث DOM EventListener DOM ملاحة DOM العقد DOM Nodelist

JS المتصفح BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS أمثلة

JS أمثلة JS HTML DOM JS HTML إدخال JS HTML الأجسام JS HTML أحداث JS المتصفح JS اختبار قصير JS ملخص

JS المراجع

JavaScript الأجسام HTML DOM الأجسام


 

JavaScript أفضل الممارسات


تجنب المتغيرات العالمية، وتجنب new ، وتجنب == ، وتجنب eval()


تجنب المتغيرات العالمية

التقليل من استخدام المتغيرات العالمية.

وهذا يشمل أنواع جميع البيانات، والأشياء، وظائف.

المتغيرات وظائف العالمية يمكن تجاوزها من قبل غيرها من الكتابات.

استخدام المتغيرات المحلية بدلا من ذلك، وتعلم كيفية استخدام الإغلاق .


نعلن دائما المتغيرات المحلية

يجب أن تعلن كل المتغيرات المستخدمة في وظيفة المتغيرات المحلية.

يجب أن يتم تعريف المتغيرات المحلية مع var الكلمة، وإلا فإنها سوف تصبح المتغيرات العالمية.

وضع صارم لا يسمح المتغيرات غير معلنة.


الإعلانات في أعلى الصفحة

بل هو ممارسة الترميز جيدة لوضع جميع الإعلانات في أعلى كل برنامج نصي أو وظيفة.

هذا سوف:

  • قدم الكود أنظف
  • توفير مكان واحد للبحث عن المتغيرات المحلية
  • تجعل من السهل لتجنب (ضمنية) المتغيرات العالمية غير المرغوب فيها
  • تقليل احتمال غير المرغوب فيها إعادة الإعلانات،
// Declare at the beginning
var firstName, lastName, price, discount, fullPrice;

// Use later
firstName = "John";
lastName = "Doe";

price = 19.90;
discount = 0.10;

fullPrice = price * 100 / discount;

هذا ينطبق أيضا على متغيرات حلقة:

// Declare at the beginning
var i;

// Use later
for (i = 0; i < 5; i++) {

افتراضيا، وجافا سكريبت يتحرك كل الإعلانات إلى الأعلى (جافا سكريبت الرفع).


تهيئة المتغيرات

بل هو ممارسة الترميز جيدة لتهيئة المتغيرات عند إعلانها.

هذا سوف:

  • قدم الكود أنظف
  • توفير مكان واحد لتهيئة المتغيرات
  • تجنب القيم غير محددة
// Declare and initiate at the beginning
var firstName = "",
    lastName = "",
    price = 0,
    discount = 0,
    fullPrice = 0,
    myArray = [],
    myObject = {};

تهيئة المتغيرات يقدم فكرة عن الاستخدام المقصود (والمقصود نوع البيانات).


لم تعلن عدد، سلسلة، أو كائنات منطقية

دائما أعامل الأرقام، سلاسل، أو القيم المنطقية كقيم البدائية. لا كأشياء.

تعلن هذه الأنواع ككائنات، يبطئ سرعة التنفيذ، وتنتج آثار جانبية سيئة:

مثال

var x = "John";             
var y = new String("John");
(x === y) // is false because x is a string and y is an object.
انها محاولة لنفسك »

أو حتى أسوأ من ذلك:

مثال

var x = new String("John");             
var y = new String("John");
(x == y) // is false because you cannot compare objects.
انها محاولة لنفسك »

لا استخدام new Object()

  • استخدام {} بدلا من new Object()
  • استخدام "" بدلا من new String()
  • استخدام 0 بدلا من new Number()
  • استخدام false بدلا من new Boolean()
  • استخدام [] بدلا من new Array()
  • استخدام /()/ بدلا من new RegExp()
  • استخدام function (){} بدلا من new Function()

مثال

var x1 = {};           // new object
var x2 = "";           // new primitive string
var x3 = 0;            // new primitive number
var x4 = false;        // new primitive boolean
var x5 = [];           // new array object
var x6 = /()/;         // new regexp object
var x7 = function(){}; // new function object
انها محاولة لنفسك »

حذار من نوع التلقائي التحويلات

حذار أن أرقام يمكن قصد تحويلها إلى سلاسل أو NaN (ليس عدد).

يتم كتابتها جافا سكريبت فضفاضة. يمكن أن تحتوي على متغير أنواع البيانات المختلفة، ومتغير يمكن تغيير نوع البيانات الخاصة به:

مثال

var x = "Hello";     // typeof x is a string
x = 5;               // changes typeof x to a number
انها محاولة لنفسك »

عند القيام بعمليات حسابية، يمكن أن جافا سكريبت تحويل الأرقام إلى سلاسل:

مثال

var x = 5 + 7;       // x.valueOf() is 12,  typeof x is a number
var x = 5 + "7";     // x.valueOf() is 57,  typeof x is a string
var x = "5" + 7;     // x.valueOf() is 57,  typeof x is a string
var x = 5 - 7;       // x.valueOf() is -2,  typeof x is a number
var x = 5 - "7";     // x.valueOf() is -2,  typeof x is a number
var x = "5" - 7;     // x.valueOf() is -2,  typeof x is a number
var x = 5 - "x";     // x.valueOf() is NaN, typeof x is a number
انها محاولة لنفسك »

طرح سلسلة من سلسلة، لا إنشاء خطأ ولكن يعود NaN (ليس عدد):

مثال

"Hello" - "Dolly"    // returns NaN
انها محاولة لنفسك »

استخدام === مقارنة

و == عامل مقارنة يحول دائما (لأنواع مطابقة) قبل المقارنة.

و === مقارنة القوات مشغل القيم ونوع:

مثال

0 == "";        // true
1 == "1";       // true
1 == true;      // true

0 === "";       // false
1 === "1";      // false
1 === true;     // false
انها محاولة لنفسك »

استخدام الإعدادات الافتراضية معلمة

إذا تم استدعاء دالة مع وسيطة في عداد المفقودين، يتم تعيين قيمة الوسيطة في عداد المفقودين إلى undefined .

يمكن للقيم غير محددة كسر الشفرة. فمن عادة جيدة لتعيين القيم الافتراضية إلى الحجج.

مثال

function myFunction(x, y) {
    if (y === undefined) {
        y = 0;
    }
}
انها محاولة لنفسك »

إقرأ المزيد حول معلمات وظيفة والحجج في معاملات الدالة


إنهاء مفاتيح الخاص بك مع الإعدادات الافتراضية

دائما في نهاية الجمل التحويلية الخاصة بك مع الافتراضية. حتى لو كنت تعتقد أن هناك حاجة لذلك.

مثال

switch (new Date().getDay()) {
    case 0:
        day = "Sunday";
        break;
    case 1:
        day = "Monday";
        break;
    case 2:
        day = "Tuesday";
        break;
    case 3:
        day = "Wednesday";
        break;
    case 4:
        day = "Thursday";
        break;
    case 5:
        day = "Friday";
        break;
    case 6:
        day = "Saturday";
        break;
    default:
        day = "Unknown";
}
انها محاولة لنفسك »

تجنب استخدام eval()

و eval() يتم استخدام الدالة لتشغيل النص التعليمات البرمجية. في جميع الحالات تقريبا، وينبغي أن لا يكون من الضروري لاستخدامها.

لأنها تسمح تعليمات برمجية عشوائية ليتم تشغيلها، فإنه يمثل أيضا مشكلة أمنية.