Typeof هو مشغل ، والنتيجة التي يعود إليها إلى المعامل هي سلسلة ، مع 6 أنواع (فقط لـ ES ، وليس كائنات البيئة المضيفة).
1.''Undefined '
2.'boolean
3. '
4.'number '
5. 'object'
6.'function '
نظرًا لأنه مشغل بحد ذاته وليست وظيفة ، فليس هناك حاجة لإضافة قوسين عند استخدامه.
نسخة الكود كما يلي:
if (typeof (obj) === 'undefined') {
// ...
}
يستخدم Typeof للحكم على الأنواع ، ولديه العديد من المزالق
1. إرجاع NULL هو "كائن" ، لكن لا يمكنك استخدامه ككائن حقًا.
نسخة الكود كما يلي:
var obj = null
if (typeof obj === 'Object') {
OBJ.A () // تم الإبلاغ عن خطأ هنا
}
2. إرجاع NAN هو "الرقم" ، ولكن لا يمكنك استخدامه لأداء العمليات الحسابية.
نسخة الكود كما يلي:
var obj = {}
var num = parseint (obj.a)
if (typeof num === 'number') {
لا يزال num = num + 10 // num نان بعد التنفيذ
}
3. لا يمكن التمييز بين الكائنات والصفائف والعمليات العادية ، وإرجاع "كائن" لجميع العمليات.
نسخة الكود كما يلي:
var obj = {}
var arr = []
var reg = /pop /g
console.log (typeof obj) // "كائن"
console.log (typeof arr) // "كائن"
console.log (typeof reg) // "كائن"
4. الإصدارات قبل Safar5 و Chrome7 "وظيفة" إلى كائنات منتظمة.
أخيرًا ، يتم نشر التفسير في المواصفات