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

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())

上一篇:比较好玩的动态添加网页元素


下一篇:Oracle dataGuard专题:利用rman创建standby