JavaScript typeof
قائمة الأجوبة
JavaScript typeof — ورقة الأجوبة الخاصة بالإختبار.
1. console.log(typeof typeof 10)
الجواب: string
الشرح : typeof 10 تُرجع "number" كسلسلة نصية، لذا فإن typeof "number" تعطي "string".
2. console.log(typeof /douiri/)
الجواب: object
الشرح : التعابير النمطية (Regex) في JavaScript تُعتبر كائنات (Objects).
3. console.log(typeof 10n)
الجواب: bigint
الشرح : اللاحقة n تشير إلى BigInt، وهي أرقام كبيرة جداً أو صغيرة جداً لتمثيلها باستخدام النوع number.
4. console.log(typeof undeclaredVariable)
الجواب: undefined
الشرح : استخدام typeof مع متغير غير معرف لا يُنتج خطأ، بل يُرجع "undefined".
5. console.log(typeof [])
الجواب: object
الشرح : المصفوفات تُعتبر كائنات في JavaScript. للتحقق مما إذا كانت مصفوفة، استخدم Array.isArray().
6. console.log(typeof class C {})
الجواب: function
الشرح : الكلاسات في JavaScript هي مجرد واجهة نحوية (syntax sugar) لدوال البناء (constructors).
7. console.log(typeof null)
الجواب: object
الشرح : هذه مشكلة معروفة في JavaScript. typeof null تُرجع "object" رغم أن null ليس كائناً.
8. console.log(typeof NaN)
الجواب: number
الشرح : NaN تعني Not-a-Number، لكن typeof NaN تُرجع "number" بشكل ساخر.
9. console.log(typeof new Date())
الجواب: object
الشرح : الكائنات Date تُعتبر أيضًا كائنات. للتحقق مما إذا كان الكائن تاريخًا، استخدم instanceof Date.
10. console.log(typeof Symbol("id"))
الجواب: symbol
الشرح : Symbol نوع بدائي (primitive) فريد في JavaScript.
خلاصة اللإختبار
- عامل typeof يُرجع سلسلة نصية تمثل نوع المعامل.
- typeof null تُرجع "object"، وهي مشكلة معروفة في JavaScript.
- استخدام typeof مع متغير غير معرف يُرجع "undefined" ولا يُنتج خطأ.
- typeof [] تُرجع "object" وليس "array" — استخدم Array.isArray() للتحقق من المصفوفات.
- typeof class Foo {} تُرجع "function" — لأن الكلاسات هي دوال خاصة.
- BigInt و Symbol أنواع بدائية حديثة: typeof 10n تُرجع "bigint" و typeof Symbol() تُرجع "symbol".
- typeof typeof x دائمًا تُرجع "string" لأن typeof الداخلية تُرجع سلسلة.
- التعابير النمطية مثل /abc/ تُعتبر كائنات.
- typeof NaN هو "number"، رغم أنه يمثل 'ليس رقمًا'.
- typeof new Date() هو "object" — الكائنات Date تشبه المصفوفات والتعابير النمطية.