
- 3 min read
خمن نتيجة كود جافاسكربت #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'.
- 3 min read
- 2 min read