本文是1.2 JS-Typeof的简化记忆版,为面试问答题的形式,如有不解,请移步原文。
1. typeof判断数据类型有什么特点?
答:
- 对于基本类型,除 null 以外,均可以返回正确的结果。
- 对于引用类型,除 function 以外,一律返回 object 类型。
- 对于 null ,返回 object 类型。
- 对于 function 返回 function 类型。 例:
typeof 1 // 'number'
2. 判断数据类型有哪些方法?各有什么特点?
答:
instanceof通过原型链来判断 A 是否为 B 的实例,表达式为:A instanceof B,instanceof 后面一定要是对象类型,并且大小写不能错。返回true/false。例
[] instanceof Array;// true
Object.prototype.toString.call()在()内写入待判断类型的数据,以类似"[object String]"的字符串形式返回对应类型。例:
Object.prototype.toString.call('') ; // [object String]
jquery.type()在()内写入待判断类型的数据,返回对应类型的小写字符串。例:
jQuery.type( undefined );// "undefined"
- 通常情况下用typeof判断就可以了;遇到需要判断Object类型是否为预知类型,比如判断[]是否为Array时用instanceof;只要不嫌麻烦,prototype和jquery.type()适用所有情况。