خمن نتيجة كود جافاسكربت #1
إختر خيارا واحدا
1 / 11
console.log(!![])
قائمة الأجوبة
خمن نتيجة كود جافاسكربت #1 — ورقة الأجوبة الخاصة بالإختبار.
1. console.log(!![])
الجواب: true
الشرح : المصفوفة الفارغة تُعد قيمة صادقة في JavaScript. النفي المزدوج يحولها إلى قيمة منطقية، فيصبح الناتج true (صحيح).
2. console.log(0.1 + 0.2 === 0.3);
الجواب: خطأ
الشرح : هذا يحدث لأن الأرقام العشرية لا تُخزن بدقة كاملة في الذاكرة، مما يؤدي إلى أخطاء تقريب صغيرة، فناتج 0.1 + 0.2 لا يساوي 0.3 بدقة، بل 0.30000000000000004..
3. const arr = [1, 2, 3];
arr[100] = 4;
console.log(arr.length);
الجواب: 101
الشرح : المصفوفات في JavaScript متفرّقة؛ يمكنك تعيين فهرس أكبر من طولها الحالي، وسيعكس length أعلى فهرس + 1.
4. console.log(typeof null)
الجواب: object
الشرح : يُعتبر null كائنًا بسبب خطأ تاريخي لم يُصلَح حفاظًا على التوافقية الخلفية.
5. function func(a, b = '', c, ...rest) {}
console.log(func.length);
الجواب: 1
الشرح : خاصية length للدالة تمثل عدد الوسائط المتوقَّعة قبل أول وسيط اختياري، مع استثناء وسائط rest.
6. console.log(typeof NaN);
الجواب: number
الشرح : على الرغم من أن NaN تعني «ليس رقمًا»، فإن نوعها بالفعل 'number'.
7. console.log("10" - 5);
console.log("10" + 5);
الجواب: 5 105
الشرح : الطرح يحوّل '10' إلى رقم، أما الجمع فيجري دمج السلسلتين، فيتحول 5 إلى نص.
8. console.log([10, 2, 5, 1].sort());
الجواب: [1, 10, 2, 5]
الشرح : المقارنة تتم بناءً على الحرف الأول من كل عنصر، وليس كقيم عددية. لذلك تظهر '10' قبل '2' و '5'.
9. for (var i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 1000);
}
الجواب: 3 3 3
الشرح : تم إعلان المتغير i باستخدام var، والذي يمتلك نطاقًا وظيفيًا (function scope). عند تنفيذ دوال setTimeout، تكون الحلقة قد انتهت بالفعل، وتكون قيمة i هي 3. عند استبدال var بـ let، يصبح لـ i نطاق كتلي (block-level scope)، مما يسمح لكل دالة معاودة (callback) بالاحتفاظ بنسختها الخاصة من i، وبالتالي تُطبع القيم المتوقعة: 0، 1، و2.
10. let a = 5;
let b = a++ + ++a;
console.log(b);
الجواب: 12
الشرح : قيمة a تبدأ بـ 5؛ a++ تُعيد 5 ثم ترفع a إلى 6، و++a ترفعها إلى 7 وتُعيد 7. لذا b = 5 + 7 = 12.
11. console.log("ba" + +"a" + "a");
الجواب: baNaNa
الشرح : المُعامل الأحادي + يحاول تحويل 'a' إلى رقم فينتج NaN؛ يصبح التعبير 'ba' + NaN + 'a' أي 'baNaNa'.
إختبارات مشابهة
إقرأ تاليا

- 4 min read
كيف تكتب كود JavaScript نظيف: نصائح أساسية

- 2 min read