1、检测数据类型的方式:
1. typeof console.log(typeof sum)
2. instaceof 检测当前变量是否属于某个类。 x instanceof 类型 ` var arr = [1,2,3,4,5,6]; console.log(arr instanceof Array);`
3.constructor 实例.constructor == 类型
对象的原型链下(构造函数原型)有一个construc属性。 缺点:construc不可靠,容易被修改。
4.isArray 判断是会否是数组 isArray` console.log(Array.isArray(arr));`
5.Object.portotype.toString.call()
/重点/
Object.portotype.toString.call()
此方法可以判断基本数据类型、引用数据类型的具体类型
1. Object.prototype.toString.call(null) //[object Null]
2. Object.prototype.toString.call(undefined); // [object Undefined]
3. Object.prototype.toString.call(undefined); // [object Undefined]
4. Object.prototype.toString.call(“abc”);// [object String]
5. Object.prototype.toString.call(123);// [object Number]
**函数类型**
1. Function fn(){
console.log(“test”);
}
Object.prototype.toString.call(fn); // "[object Function]"
**日期类型**
3. var date = new Date();
Object.prototype.toString.call(date); // "[object Date]"
**数组类型**
4. var arr = [1,2,3];
Object.prototype.toString.call(arr); // "[object Array]"
**正则表达式**
5. var reg = /[hbc]at/gi;
Object.prototype.toString.call(reg); // "[object RegExp]"
**自定义类型**
6. function Person(name, age) {
this.name = name;
this.age = age;
}
var person = new Person("Rose", 18);
Object.prototype.toString.call(arr); // "[object Object]"
Object.prototype.toString.call(true);// [object Boolean]