javascript准确判断各种数据类型
javascript准确判断各种数据类型
Object.prototype.toString.call() 方法
判断基本数据类型
const a = Object.prototype.toString.call(null)
console.log(a) // [object Null]
console.log(a === '[object Null]') //true
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]
判断原生引用类型
// **函数类型**
function fn() {}
Object.prototype.toString.call(fn) // "[object Function]"
// **日期类型**
const date = new Date()
Object.prototype.toString.call(date) // "[object Date]"
// **数组类型**
const arr = [1, 2, 3]
Object.prototype.toString.call(arr) // "[object Array]"
// **正则表达式**
const reg = /[hbc]at/gi
Object.prototype.toString.call(reg) // "[object RegExp]"
// **自定义类型**
function Person(name, age) {
this.name = name
this.age = age
}
const person = new Person('Rose', 18)
// 准确判断person是Person类的实例,只能用instanceof 操作符来进行判断,如下所示:
console.log(person instanceof Person) // true
判断原生JSON对象
const isJSON = window.JSON && Object.prototype.toString.call(JSON);
console.log(isJSON);// 输出结果为”[object JSON]”说明JSON是原生的,否则不是;
坚持写博客......记录和分享