typeof
- 可以判断数据类型,它返回表示数据类型的字符串(返回结果只能包括number,boolean,string,function,object,undefined);
- 可以使用typeof判断变量是否存在(如if(typeof a!=”undefined”){…});
- Typeof 运算符的问题是无论引用的对象是什么类型 它都返回object
1 2 3
| typeof {} typeof [1,2] typeof /\s/
|
instanceof
原理 因为A instanceof B 可以判断A是不是B的实例,返回一个布尔值,由构造类型判断出数据类型
1 2 3
| console.log(arr instanceof Array ); console.log(date instanceof Date ); console.log(fn instanceof Function );
|
Object下的toString.call()方法
1 2 3 4 5 6 7 8 9
| Object.prototype.toString.call();
console.log(toString.call(123)); console.log(toString.call('123')); console.log(toString.call(undefined)); console.log(toString.call(true)); console.log(toString.call({})); console.log(toString.call([])); console.log(toString.call(function(){}));
|
根据对象的contructor判断:
1 2 3 4
| console.log('数据类型判断' - constructor); console.log(arr.constructor === Array); //true console.log(date.constructor === Date); //true console.log(fn.constructor === Function); //true
|