JavaScript中的类型判断方法(全)

2022-02-12 10:46:42 浏览数 (3)

JavaScript中的类型判断方法(全)

js中的数据类型

基本数据类型:Undefined、Null、Boolean、Number、String,Symbol

引用数据类型 :Object

一般而言,我们还需要额外判断一下是Array类型还是Object

今天就专门整理了下,下面用表格做一个对比

数据

typeof

instanceof

constructor

Object.prototype.toString.call

const und = undefined

'undefined'

undefined instanceof Object // false

无该属性

Object.prototype.toString.call(und) //object Undefined

const nul = null

'object'

null instanceof Object // false

无该属性

Object.prototype.toString.call(nul) //object Null

const bool = false

'boolean'

false instanceof Boolean // false

bol.constructor === Boolean // true

Object.prototype.toString.call(bool) //object Boolean

const num = 1

'number'

1 instanceof Number // false

num.constructor === Number // true

Object.prototype.toString.call(num) //object Number

const str = 'test'

'string'

'test' instanceof String // false

str.constructor === String // true

Object.prototype.toString.call(str) //object String

const sym = Symbol()

'symbol'

sym instanceof Symbol // false

sym.constructor === Symbol // true

Object.prototype.toString.call(sym) //object Symbol

const obj = {param:1}

'object'

obj instanceof Object // true

obj.constructor === Object // true

Object.prototype.toString.call(obj) //object Object

const arr = 1,2,3

'object'

1 instanceof Object //true

arr.constructor === Array // true

Object.prototype.toString.call(arr) //object Array

总结

无法区分数组 对象和null

无法识别基本数据类型

依然不能判断所有类型

可以适当封装用于数据类型判断

当然,不同场景使用不同的判断方法。简单类型的判断,使用typeof即可(null的问题属于历史遗留),针对array和object再作进一步区分即可(可以使用Array.isArray())

1 人点赞