共计 1352 个字符,预计需要花费 4 分钟才能阅读完成。
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())
正文完
发表至: javascript
2022-02-11