美文网首页
数据类型检测方法总结

数据类型检测方法总结

作者: 马儿_adcf | 来源:发表于2019-03-05 12:49 被阅读0次

数据类型检测方法总结

参考:http://www.cnblogs.com/xinggood

一. 基本数据类型(string number boolean undefined null)的检测用typeof 

但是要注意 console.log(typeof(null)) 的值是object

二. 数组和对象的检测方法

1.instance方法

var obj = {name: 'mac'}

var arr = [1, 2 , 3]

console.log (obj instanceof Object)  // true

console.log (arr instanceof Array)  // true

console.log (arr instanceof Object) //true

基于instanceof封装一个检测数组和对象的方法

var dataType = function (obj) {

if (obj instanceof Array){

return 'array'

} else if (obj instanceof Object) {

return 'Object'

} else {

return 'not object'

}

这种方法的缺点:一定要先检查他是不是数组再检查是不是对象,第一个if和第二个if 的顺序颠倒后检测数组会返回object

2. Object.prototype.string.call()方法

dataType1 (obj) {

if (Object.prototype.toString.call(obj) ==='[object Object]') {

return 'object'

  }else if (Object.prototype.toString.call(obj) ==='[object Array]') {

return 'array'

  }else {

return 'not object or array'

  }

}

3.constructor方法

let aaa = {name:1}

console.log(typeof (aaa), '对象')

let bbb = [1, 2, 3]

console.log(typeof (bbb), '数组')

letccc =function () {

}

console.log(aaa.constructor === Object, 'constructor方法')   //true

console.log(bbb.constructor === Array, 'constructor方法')   //true

console.log(ccc.constructor === Function, 'constructor方法')  //true

3.Array.isArray方法

let aaa = {name:1}    

console.log(typeof (aaa), '对象')   

let bbb = [1, 2, 3]

console.log(typeof (bbb), '数组')

letccc =function () {

}

console.log(Array.isArray(aaa), 'Array.isArray方法')  //false

console.log(Array.isArray(bbb), 'Array.isArray方法') //true

console.log(Array.isArray(ccc), 'Array.isArray方法') //false


相关文章

网友评论

      本文标题:数据类型检测方法总结

      本文链接:https://www.haomeiwen.com/subject/qexyuqtx.html