1. علامات الإذاعة الذاتية دون استخدام البرنامج النصي
استخدم العلامات ذاتية الانضمام في البرنامج النصي. على الرغم من أنه قانوني في XHTML ، إلا أنه لا يتوافق مع مواصفات HTML ولا يمكنه الحصول على تحليل صحيح لبعض المتصفحات. لقد استخدمت هذه الطريقة فقط عندما قدمت Ext ، مما تسبب في عدم قدرة البرنامج النصي على تنفيذها بشكل صحيح.
<script src="example.js"/> --> <script src="example.js"></script>
2. ضع السيناريو أمام </body>
إذا وضعت ملف البرنامج النصي في <head> ، فيجب عليك تنزيل البرنامج النصي وتنفيذه قبل عرض الصفحة ، مما يزيد من وقت انتظار المستخدم. ضع ورقة الأنماط في <head> لمنع المحتوى من العرض بشكل غير طبيعي. الطريقة العامة هي كما يلي:
<! doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <title> مستند </title> <link rel = "stylesheet" type = "text/css" href = "theme.css"/> </head> <! src = "example.js"/> </body> </html>
3. استخدم الوضع الصارم داخل الوظيفة
إذا كنت تستخدم وضعًا صارمًا خارج الوظيفة ، فقد يتسبب ذلك في فشل مكتبة الطرف الثالث ورمز الزملاء في العمل بشكل صحيح. داخل الوظيفة ، يمكن أن يؤثر فقط على رمزك وليس رمز الآخرين.
وظيفة myFunction () {"استخدام صارم" ؛ // رمز الدالة}4. لا تحذف المنقص في نهاية البيان
لا يمكن أن يتسبب أي فاصلة في نهاية الكود بسهولة في حدوث أخطاء في الضغط. بالإضافة إلى ذلك ، في بعض الحالات ، يمكن تحسين أداء الرمز. يجب ألا يقضي المترجم وقتًا في تخمين مكان إدراج Semicolons. هناك مشكلة أخرى أكثر شيوعًا وهي أن إدراج فاصلة فاصلة تلقائيًا يمكن أن يرتكب أخطاء في بعض الأحيان ، لذلك لا ينصح بإلغاء فاصلة فاصلة.
5. استخدم VAR لتحديد المتغيرات
استخدم الكلمة الرئيسية VAR عند تحديد المتغيرات وكلها متقدمة إلى بداية الوظيفة.
ستمنع فوائد القيام بذلك من خلق متغيرات عالمية دون وعي وجعل الفهم رمزك أسهل.
وظيفة myFunction () {var result = 10 + value ؛ var value = 10 ؛ نتيجة العودة ؛}لا توجد مشكلة في بناء جملة الوظيفة هذه ، لكنها ليست بديهية للغاية ولا تتوافق مع المنطق البشري. سيكون من الأفضل تعديله على النحو التالي:
funciton myfunction () {var result ؛ var قيمة النتيجة = 10 + قيمة ؛ القيمة = 10 ؛ نتيجة العودة }اسمحوا لي أن أشرح لك أن الرموز المذكورة أعلاه متكافئة ، وقيمة النتيجة هي NAN. ستقوم JavaScript بترويج جميع الإعلانات المتغيرة في الوظيفة إلى بداية الوظيفة. سيصبح الرمز 1 الرمز 2 عند تنفيذ الرمز. عندما يتم تشغيله إلى النتيجة = 10 + قيمة ؛ ، تكون قيمة القيمة غير محددة ، ويتم إضافة 10 إلى NAN ، ثم يتم تعيين القيمة إلى 10.
يجب أن يكون الجميع واضحين بشأن المشكلات الناجمة عن المتغيرات العالمية ، وإلا فلن يظهر مفهوم مساحة الاسم.
6. أعلن الوظيفة أولاً ثم استخدمها
مثل التصريحات المتغيرة ، يتم أيضًا تطوير إعلانات الوظائف بواسطة محرك JavaScript ، لذلك في الكود ، يمكن أن تظهر استدعاء الوظيفة قبل إعلان الوظيفة. شيء آخر يستحق الإشارة إليه هو أن إعلانات الوظيفة لا ينبغي أن تظهر في كتل العبارات ، مثل:
if (ظروف) {function myFunction () {Alert ("true") ؛ }} else {function myfunction () {Alert ("false") ؛ }} myFunction () ؛عندما ندير الرمز ، وجدنا أن الإخراج سيكون مرتبطًا بالمتصفح. يخرج صحيح في Chrome 51 و Firefox 46 ، وخطأ في IE 10. لذا حاول تجنب إعلان الوظائف في كتل البيان.
7. استخدم typeof nulled null بحذر
NULL هي قيمة خاصة ، وغالبا ما نخلط بين غير محددة. يجب أن تستخدم السيناريوهات التالية NULL:
لا ينبغي استخدام NULL في المواقف التالية:
أفضل طريقة لفهم NULL هي استخدامه كعنصر نائب للكائن. السبب في أننا في كثير من الأحيان نخلط بين الفارغ وغير المحددة هو أننا نعتقد أن الفارغ وغير المحددة كلاهما متغيران لم يتم تهيئته ، ولكن فقط غير محددة تعني أنه لم يتم تهيئة المتغير ، وأن فارغ يعني أنه تم تهيئته ككائن. انظر إلى الكود التالي:
var person ؛ console.log (typeof person) ؛ //undefinedconsole.log(typeof foo) ؛ // undefinedvar house = null ؛ console.log (typeof house) ؛ //هدف
لذا حاول عدم استخدام typeof لتحديد ما إذا كان يتم تهيئة المتغير. لا يمكنك التأكد مما إذا كان المتغير غير موجود أو لم يتم تهيئة المتغير. إن إرجاع NULL ليس متأكدًا مما إذا كان المتغير قد تم تعيينه بشكل صحيح ، لذا كن حذرًا في استخدام typeof.
8. كن حذرا مع نوع الرقم
أعتقد أن الجميع يعلم أن الأعداد الصحيحة في JavaScript تدعم القيم الحرفية العشرية والأوكتال والسياسية. إذا تجاوزت القيمة الرقمية في القيمة الحرفية النطاق في Octal ، فسيتم تجاهل الصفر الرائد وسيتم تحليل القيمة الرقمية اللاحقة على أنها عشرية.
console.log(012); //10
console.lgo (082) ؛ // 82
إذا تم استخدام الثماني والسداسي عشري في العشرية ، فسيكون هناك خطأ في بناء الجملة. نقطة أخرى هي أن الحرفيات الثمانية غير صالحة في الوضع الصارم. يعلم الجميع مشكلة أخطاء حساب النقطة العائمة. هذا صحيح بالنسبة لجميع حسابات النقطة العائمة على أساس قيم IEEE754 ، لذلك لا تختبر أبدًا قيمة نقطة عائمة محددة.
هناك قيمة خاصة في النوع الرقمي ، NAN (وليس رقمًا) ، يتم استخدامه للإشارة إلى أنه كان ينبغي إرجاع القيمة ولكن ليس النوع الرقمي. نان وأي قيمة ليست متساوية ، بما في ذلك نان نفسها. يمكننا استخدام وظيفة ISNAN () للاختبار.
9. المهمة الديناميكية باستخدام العمليات المنطقية
ما تفضله
var person = {Age: 10} var inction ؛ var myvar = inction && pers ؛ ALERT (myvar)إذا تم تحويل الحالة إلى نوع منطقي خطأ ، فإن myvar = الشرط ، إذا كان صحيحًا ، ثم myvar = شخص.
var person = {Age: 10} var inction ؛ var myvar = inction || شخص؛ تنبيه (ميفار)إذا تم تحويل الحالة إلى منطقية وصحيح ، فإن myvar = حالة ، إذا كان خطأ ، ثم myvar = شخص.
10. لا تستخدم البيان
سبب مهم لعدم استخدامه هو أنه في الوضع الصارم ، يقوم بناء الجملة نفسه بتعطيل البيان مع ، مما يدل أيضًا على أن لجنة ECMAScript مقتنعة أنه لا ينبغي استخدامها. دعونا نلقي نظرة على المثال التالي:
var book = {title: "javaScript" ، المؤلف: "Nicholas C. Zakas"} ؛ var message = "The Book is" ؛ with (book) {message += title ؛ رسالة + = "بواسطة" + مؤلف ؛}تتمثل المشكلة في الكود أعلاه في أنه من الصعب علينا التمييز بين الموقع الذي يظهر فيه العنوان والمؤلف ، ومن الصعب أيضًا التمييز بين متغير محلي لمعالجة الرسائل أو خاصية كتاب. علاوة على ذلك ، لا يمكن لأدوات محرك JavaScript وأدوات الضغط تحسين هذا الرمز ، لذلك لا يمكنهم تخمين المعنى الصحيح للرمز.
حسنًا ، هناك بالفعل عشرة عناصر ، دعنا نراكم العشرة القادمة.