هناك سؤال مقابلة JS ، والسؤال كما يلي: ما هي نتيجة التنفيذ للرمز التالي ولماذا؟
نسخة الكود كما يلي:
var i ، j ، k ؛
لـ (i = 0 ، j = 0 ؛ i <10 ، j <6 ؛ i ++ ، j ++) {
k = i+j ؛
}
document.write (k) ؛
الجواب هو إظهار 10. هذا السؤال يفحص بشكل أساسي مشغل فاصلة JavaScript.
فيما يلي تعريف مشغل الفاصلة بواسطة MDN:
يقوم مشغل الفاصلة بحساب اثنين من المعاملات (من اليسار إلى اليمين) ويعيد قيمة المعامل الثاني.
وفقًا لهذا التعريف ، يمكنك تمديده:
يقوم مشغل الفاصلة بحساب اثنين أو أكثر من المعاملات من اليسار إلى اليمين ويعيد قيمة المعامل الأخير.
يمكنك أن تشعر بالرمز التالي:
نسخة الكود كما يلي:
تنبيه ((0 ، 9)) ؛
تنبيه ((9 ، 0)) ؛
إذا (0،9) تنبيه ("موافق") ؛
إذا (9،0) تنبيه ("موافق") ؛
ما هو دور مشغلي الفاصلة في الكود الفعلي؟
1. تبادل المتغيرات بدون متغير ثالث
نسخة الكود كما يلي:
var a = "a" ، b = "b" ؛
// الطريقة 1
a = [b] [b = a ، 0] ؛
// الطريقة 2
a = [b ، b = a] [0] ؛
2. تبسيط الكود
نسخة الكود كما يلي:
إذا (x) {
foo () ؛
شريط العودة () ؛
}
آخر{
العودة 1 ؛
}
يمكن اختصارها على النحو التالي:
نسخة الكود كما يلي:
إرجاع X؟