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