قبل} فقط ، بعد انهار خط واحد أو أكثر ، ويتم إدخال نهاية إدخال البرنامج
وهذا يعني أنه يمكنك فقط حذف المنقصين حيث ينتهي الخط ، وكتلة من الكود ، وقطعة من البرنامج.
وهذا يعني ، يمكنك كتابة الرمز التالي
نسخة الكود كما يلي:
وظيفة مربع (x) {
var n = +x
إرجاع n * n
}
لكن لا يمكن كتابتها مثل الرمز التالي ، لذلك سيبلغ عن خطأ
نسخة الكود كما يلي:
منطقة الوظيفة (r) {r = +r return math.pi*r*r} // error
أدخل فقط إذا كان لا يمكن تحليل علامات الإدخال اللاحقة
وبعبارة أخرى ، فإن إدخال Semicolon هو آلية تصحيح الخطأ. اقرأ الكود وتحدث
نسخة الكود كما يلي:
أ = ب
(F ())
//يمكن أن يكون تحليلًا بشكل صحيح في بيان منفصل بسعر الوحدة للبيان التالي.
a = b (f ())
أ = ب
F ()
// تم تحليلها في بيانين مستقلين
a = bf () ؛ // التحليل غير صحيح
لذلك عليك أن تنتبه إلى بداية البيان التالي لتحديد ما إذا كان يمكنك حذف فاصلة فاصلة.
(، [، +، -، و /، فمن الأفضل عدم حذف الفاصلة المنقوطة أمامه.
إعطاء مثال لتوضيح
نسخة الكود كما يلي:
أ = ب
['r' ، 'g' ، 'b']. foreach (وظيفة (مفتاح) {
console.log (مفتاح) ؛
}) ؛
كنت تعتقد في الأصل أنه لم يكن هناك خطأ ، لكن المحلل الموجود في البيان التالي
نسخة الكود كما يلي:
a = b ['r' ، 'g' ، 'b']. foreach (وظيفة (مفتاح) {
console.log (مفتاح) ؛
}) ؛
نظرًا لأن الجملة الثانية تبدأ بـ [، فإن المحلل لن يقوم تلقائيًا بإدخال فاصلة فاصلة بعد البيان الأول ، لذلك يتم تحليله كما هو موضح أعلاه. أليس B ['b'].
لذلك ، إذا كانت العبارات التي تبدأ بالأحرف الخمسة (، [، +، -، و / / من الأفضل عدم حذف المنقص قبل ذلك.
إذا كنت ترغب في حذف Semicolon ، فسيتابع المبرمج ذي الخبرة البيان للتأكد من أن محلل المحلل يتحلل بشكل صحيح. كما هو موضح أدناه
نسخة الكود كما يلي:
أ = ب
var x // يتم إضافة بيان الإعلان بشكل خاص هنا للتأكد من عدم تحليل A = B باستخدام (f ())
(F ())
لذا ، إذا كنت بحاجة إلى حذف فاصلة فاصلة ، فيجب عليك التحقق مما إذا كانت علامة البدء للخط التالي هي الأحرف الخمسة المذكورة أعلاه ، مما تسبب في تعطيل المحلل اللغوي على الإدراج التلقائي للفصوليات الفاصلة ، أو يمكنك أيضًا بادئة الأحرف الخمسة (، [، +، -، و / /
التسبب في حذف Semicolons يسبب مشاكل في اتصال البرنامج النصي
نسخة الكود كما يلي:
//file1.js
(وظيفة () {
// ...
}) ()
//file2.js
(وظيفة () {
// ...
}) ()
عندما يتم توصيل الملفان أعلاه ، سيتم تحليلهما على النحو التالي
نسخة الكود كما يلي:
(وظيفة () {
// ...
})()(وظيفة () {
// ...
}) ()
لذلك ، لا يتطلب منك حذف Semicolons فقط أن تكون حذراً ليس فقط بشأن العلامة التالية للملف الحالي ، ولكن أيضًا حول أي علامة قد تظهر بعد توصيل البرنامج النصي.
لتجنب أخطاء تحليل المحللون ، يمكنك بادئة فاصلة فاصلة إضافية على كل ملف لحماية البرنامج النصي من الاتصالات المتهورة. إذا تم تبديل البيان الأولي للملف مع الحرف 5 الهشة أعلاه ، فيجب عليك إضافة بادئة نصف المستوى الإضافية.
توليد تقييد بناء جملة JavaScript
إنتاج تقييد بناء جملة JavaScript: لا يُسمح بفواصل الخط بين حرفين.
إعطاء مثال:
نسخة الكود كما يلي:
يعود
{} ؛
يتم تحليل الرمز أعلاه
نسخة الكود كما يلي:
يعود؛
{}
؛
قواعد إدخال Semicolon لعمليات النقل الذاتي وعمليات النزول الذاتي
نسخة الكود كما يلي:
أ
++
ب
فكر في ما سيتم تحليل الكود أعلاه؟ دعنا نخبر الإجابة ، لأنه يمكن استخدام مشغل التلقائي كمشغل مسبقًا ومشغلًا لمستى ، ولكن لا يمكن أن يظهر مشغل postset قبل كسر الخط ، وبالتالي يتم تحليل الرمز أعلاه إلى
نسخة الكود كما يلي:
أ ؛
++ ب ؛
لن يتم إدراج Semicolon تلقائيًا كفاصل على رأس البيان الفارغ من أجل الحلقة.
نسخة الكود كما يلي:
لـ (var i = 0 ، total = 1
أنا <الطول
i ++) {
المجموع*= i ؛
}
الرموز مثل ما سبق سيكون لها أخطاء التحليل.
يجب أيضًا عرض Semicolons ، بينما سيؤدي ذلك أيضًا إلى تحليل أخطاء التحليل.
نسخة الكود كما يلي:
وظيفة myTest () {
بينما (صحيح)
}
يجب أن تكتب على النحو التالي لتجنب الأخطاء
نسخة الكود كما يلي:
وظيفة myTest () {
بينما (صحيح) ؛
}
دعونا نلخص
1. استنتاج فاصلة فاصلة فقط قبل العلامة} ، في نهاية الخط ، وفي نهاية البرنامج
2. استنتاج المنقصات فقط عندما لا يمكن تحليل العلامة التالية
3. يجب ألا تحذف المنقصين قبل البيانات التي تبدأ بـ (، [، +، -، و / أحرف.
4. عندما يتم توصيل البرنامج النصي ، إدراج فاصلة فاصلة بين البرامج النصية بين البرامج النصية
5. يجب ألا تغلب الخط قبل معلمات العودة ، رمي ، كسر ، متابعة ، ++ أو -
6. لا يمكن استنتاج فاصلة فاصلة لرأس حلقة أو عبارة فارغة.