在判断JavaScript数据类型之前,首先我们得搞清楚有哪些常见的数据类型:
- 数值型(Number)
- 布尔型(Boolean)
- 字符串型(String)
- 对象(Object)
- 数组(Array)
- 空值(Null)
- 未定义(Undefined)
一、常用类型判断方法
1. typeof
类型名称 返回值 Number number String string Boolean boolean Undefined undefined Null object Object object Array object
2. instanceof
3. constructor
4. 原型名称
二、工具封装
isNumber
//isFinite会筛除掉NaN和Infinity
function isNumber(value){
return typeof value === 'number' && isFinite(value);
}
isArray
//第一种方法
function isArray(value){
return value && typeof value === 'object' && value.constructor === Array;
}
//第二种方法
function isArray(value){
return Object.prototype.toString.apply(value) === '[object Array]';
};
//第一种方法存在着缺陷,在识别从不同窗口(window)或帧(frame)里狗仔的数组时会失败,推荐使用第二种方法