js数据类型判断
1.typeof
只能用于判断值类型的数据格式,注意typeof null 会返回object;typeof {}、typeof [] 和typeof function 都是返回object。
2.instanceof
insanceof用于区分引用类型
例如: [] instanceof Array 返回的是true
[] instanceof Object 返回的是 true
function instanceof Function 返回的是 true
function instanceof Object 返回的是 true ’
{} instanceof Object 返回的是 true
3.constructor
js是面向对象的语言所以,每个变量都可以找到其原型
var str = ‘123’;
str.constructor === String 返回的是true;
var num = 1111;
num.constructor === Number 返回的是true;
var boolean = true
boolean.constructor === Boolean 返回的是true
var arr = []
arr.constructor === Array 返回的是true
function fn(){}
fn.constructor === Function 返回的是true
var obj = {}
obj.constructor === Object 返回的是true
注意:null和undefined是没有原型的 null.constructor和undefined.constructor是会报错的
使用toString的方法
此方法是最全面的
Object.prototype.toString.call(’’) === ‘[object String]’ 返回是true
Object.prototype.toString.call(1111) === ‘[object Number]’ 返回是true
Object.prototype.toString.call(true) === ‘[object Boolean]’ 返回是true
Object.prototype.toString.call(null) === ‘[object Null]’ 返回是true
Object.prototype.toString.call(undefined) === ‘[object undefined]’ 返回是true
Object.prototype.toString.call({}) === ‘[object Object]’ 返回是true
Object.prototype.toString.call([]) === ‘[object Array]’ 返回是true
Object.prototype.toString.call(fn) === ‘[object Function]’ 返回是true
Array.isArray
判断是不是一个数组只有数组才会返回true,除数组之外的所有的都为fasle
Array.isArray([]) 返回true