使用 toString.call()方法判断数据类型

来源:互联网 发布:包装设计收费 知乎 编辑:程序博客网 时间:2024/05/22 17:21

使用Object.prototype上的原生toString()方法判断数据类型,使用方法如下:

Object.prototype.toString.call(value)

1.判断基本类型:

Object.prototype.toString.call(null);//”[object Null]”Object.prototype.toString.call(undefined);//”[object Undefined]”Object.prototype.toString.call(“abc”);//”[object String]”Object.prototype.toString.call(123);//”[object Number]”Object.prototype.toString.call(true);//”[object Boolean]”

2.判断原生引用类型:

函数类型
Function fn(){console.log(“test”);}Object.prototype.toString.call(fn);//”[object Function]”
日期类型
var date = new Date();Object.prototype.toString.call(date);//”[object Date]”
数组类型
var arr = [1,2,3];Object.prototype.toString.call(arr);//”[object Array]”
正则表达式
var reg = /[hbc]at/gi;Object.prototype.toString.call(arr);//”[object Array]”
自定义类型
function Person(name, age) {    this.name = name;    this.age = age;}var person = new Person("Rose", 18);Object.prototype.toString.call(arr); //”[object Object]”
很明显这种方法不能准确判断person是Person类的实例,而只能用instanceof 操作符来进行判断,如下所示:
console.log(person instanceof Person);//输出结果为true
1 0