مقدمة
JavaScript هي لغة تفسير ، وتنفيذها من أعلى إلى أسفل. ومع ذلك ، فإن كل متصفح له اختلافات طفيفة في فهمه لـ [من أعلى إلى أسفل] ، والمثول أمام المباراة ، أي تدفق البرنامج ، أمر بالغ الأهمية للتشغيل الصحيح للبرنامج. لذلك من الضروري فهم ترتيب تنفيذ JS في العمق. تحقيقًا لهذه الغاية ، صممت التجارب الثمانية التالية للحصول على النتائج الأكثر دقة.
تجربة
نسخة الكود كما يلي:
<script type = "text/javaScript">
// التجربة 1:
وظيفة T (أ)
{
تنبيه ("[t (a)] a:" + a) ؛
}
وظيفة T (أ ، ب)
{
التنبيه ("[t (a ، b)] a:" + a + "، b:" + b) ؛
}
ر (1) ؛
//نتيجة:
// [T (A ، B)] A: 1 ، B: غير محدد
// التجربة 2:
وظيفة T (أ ، ب)
{
التنبيه ("[t (a ، b)] a:" + a + "، b:" + b) ؛
}
وظيفة T (أ)
{
تنبيه ("[t (a)] a:" + a) ؛
}
ر (1) ؛
//نتيجة:
// [t (a)] a: 1
// التجربة 3:
وظيفة T (أ)
{
تنبيه ("[t (a)] a:" + a) ؛
}
وظيفة T (أ ، ب)
{
التنبيه ("[t (a ، b)] a:" + a + "، b:" + b) ؛
}
T (1 ، 2) ؛
//نتيجة:
// [t (a ، b)] a: 1 ، b: 2
// التجربة 4:
وظيفة T (أ ، ب)
{
التنبيه ("[t (a ، b)] a:" + a + "، b:" + b) ؛
}
وظيفة T (أ)
{
تنبيه ("[t (a)] a:" + a) ؛
}
T (1 ، 2) ؛
//نتيجة:
// [t (a)] a: 1
// التجربة 5
وظيفة T (أ)
{
تنبيه ("[t (a)] a:" + a) ؛
}
ر (1) ؛
وظيفة T (أ ، ب)
{
التنبيه ("[t (a ، b)] a:" + a + "، b:" + b) ؛
}
//نتيجة:
// [T (A ، B)] A: 1 ، B: غير محدد
// التجربة 6
وظيفة T (أ)
{
تنبيه ("[t (a)] a:" + a) ؛
}
T (1 ، 2) ؛
وظيفة T (أ ، ب)
{
التنبيه ("[t (a ، b)] a:" + a + "، b:" + b) ؛
}
//نتيجة:
// [t (a ، b)] a: 1 ، b: 2
// التجربة 7
وظيفة T (أ ، ب)
{
التنبيه ("[t (a ، b)] a:" + a + "، b:" + b) ؛
}
ر (1) ؛
وظيفة T (أ)
{
تنبيه ("[t (a)] a:" + a) ؛
}
//نتيجة:
// [t (a)] a: 1
// التجربة 8
وظيفة T (أ ، ب)
{
التنبيه ("[t (a ، b)] a:" + a + "، b:" + b) ؛
}
T (1 ، 2) ؛
وظيفة T (أ)
{
تنبيه ("[t (a)] a:" + a) ؛
}
//نتيجة:
// [t (a)] a: 1
</script>
PostScript
عند تحديد وظيفة JavaScript ، فإن اسم الوظيفة هو معرف كائن الوظيفة ، وعدد المعلمات هو فقط سمة الوظيفة. لا يمكن تنفيذ التحميل الزائد عن طريق تحديد وظائف مع عدد مختلف من المعلمات.
عند استدعاء وظيفة ، يجد JS كائن الوظيفة المقابل من خلال اسم الوظيفة ، ثم يطابق معلمات تعريف الوظيفة وقائمة معلمات التعبير بالترتيب. يتم تنفيذ رمز الوظيفة.
لذلك ، عند تحديد وظيفة ، يتم وضع المعلمات المطلوبة عادة في مقدمة قائمة المعلمات ويتم وضع المعلمات الاختيارية بعد المعلمات المطلوبة.
أشياء يجب ملاحظتها
1. تم الحصول على نتائج التجارب الثمانية المذكورة أعلاه من خلال تشغيل 360 متصفح (الإصدار/kernel: 6.3.1.142/21.0.1180.89) و Firefox Browser (الإصدار: 27.0.1).
2. التجارب الثمانية أعلاه مستقلة عن بعضها البعض.