JavaScript typeof

إختر خيارا واحدا

1 / 10

console.log(typeof typeof 10)

قائمة الأجوبة

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 تشبه المصفوفات والتعابير النمطية.

إختبارات مشابهة