js如何判断数据类型

辰漪
2021-12-24 / 0 评论 / 112 阅读 / 正在检测是否收录...

一、常用的js数据类型

基本数据类型 :String、Number、Boolean、Null、Undefined
复杂数据类型 :Object

二、js数据类型判断

// 初始化一些数据用来判断
let str = "字符串类型" 
let bool = true   
let num = 123 
let nulll = null  
let undef   
let arr = []   
let obj = {}   
let sum = function () {}  

1.使用typeof进行判断

console.log(typeof str) // string
console.log(typeof bool) // boolean
console.log(typeof num) // number
console.log(typeof nulll) // object
console.log(typeof undef) // undefined
console.log(typeof arr) // object
console.log(typeof obj) // object
console.log(typeof sum) // function


2.使用A instanceof B进行判断

console.log(str instanceof String) // false
console.log(bool instanceof Boolean) // false
console.log(num instanceof Number) // false
console.log(nulll instanceof Object) // false
console.log(undef instanceof Object) // false
console.log(arr instanceof Array) // true
console.log(obj instanceof Object) // true
console.log(sum instanceof Function) // true


3.使用Object.prototype.toString.call()进行判断

console.log(Object.prototype.toString.call(str)) // [object String]
console.log(Object.prototype.toString.call(bool)) // [object Boolean]
console.log(Object.prototype.toString.call(num)) // [object Number]
console.log(Object.prototype.toString.call(nulll)) // [object Null]
console.log(Object.prototype.toString.call(undef)) // [object Undefined]
console.log(Object.prototype.toString.call(arr)) // [object Array]
console.log(Object.prototype.toString.call(obj)) // [object Object]
console.log(Object.prototype.toString.call(sum)) // [object Function]

三、封装成函数

function judgeType (data) {
  return Object.prototype.toString.call(data).slice(8, -1)
}

judgeType('jkl') // 'String'
judgeType(123) // 'Number'
judgeType(true) // 'Boolean'
judgeType(null) // 'Null'
judgeType(undefined) // 'Undefined'
judgeType([]) // 'Array'
judgeType({}) // 'Object'
judgeType(function sum () {}) // 'Function'
judgeType(new Set()) // 'Set'
judgeType(new Map()) // 'Map'
4
选择打赏方式:
微信

评论 (0)

取消