JavaScript监测数据类型方法全面总结
需要检测类型
需要检测是不是 number string boolean undefined function
使用typeOf 检测
使用typeOf 检测是有局限性的 比如 数组、对象等引用类型检测出来都是Object
console.log(typeOf 123) // Number console.log(typeOf '123') // String console.log(typeOf NaN) // Number console.log(typeOf true) // Boolean console.log(typeOf undefined) // Undefined console.log(typeOf function(){}) // Function console.log(typeOf null) // Object console.log(typeOf {}) // Object console.log(typeOf []) // Object
使用 instanceof 检测
使用 instanceof 检测 某个对象是否属于某个类的实例 但是检测 数组、对象、函数 等引用类型检测出来也是Object
console.log({}.instanceof Object) // true console.log([].instanceof Array) // true console.log(123.instanceof Number) // 报错
使用 construct 检测
使用 construct 检测 可以根据原型对象检测
console.log({}.construct === Object) // true console.log([].construct === Array) // true console.log(123.construct === Number) // 报错
目前准确的检:Object.prototype.toString.call()
console.log(Object.prototype.toString.call(123)) // [object Number] console.log(Object.prototype.toString.call('ok')) // [object String] console.log(Object.prototype.toString.call(true)) // [object Boolean] console.log(Object.prototype.toString.call([]) // [object Array] console.log(Object.prototype.toString.call({}) // [object Object] console.log(Object.prototype.toString.call(function(){}) // [object Function] console.log(Object.prototype.toString.call(/abc/) // [object RegExp] console.log(Object.prototype.toString.call(null) // [object Null] console.log(Object.prototype.toString.call(undefined) // [object Undefined] let d= new Date() console.log(Object.prototype.toString.call(d) // [object Date] let s = Symbol console.log(Object.prototype.toString.call(s) // [object Symbol]
不足
instanceof 不足:
- 可以检测出引用类型,但是检测不出基本类型
- 所有应用类型,都是Object的实例
- 可以人为修改原型链,导致检测的结果不准缺
typeOf不足:
- 可以检测出基本类型,但是检测不出引用类型,检测出来都是Object
construct不足:
- 可以检测出引用类型,但是检测不出基本类型
- 可以人为修改原型链,导致检测的结果不准缺
以上就是JavaScript监测数据类型方法全面总结的详细内容,更多关于JavaScript监测数据类型的资料请关注脚本之家其它相关文章!
相关文章
微信小程序 Windows2008 R2服务器配置TLS1.2方法
微信小程序免费SSL证书https、TLS版本问题的解决方案《二十四》request:fail错误(含https解决方案)(真机预览问题把下面的代码复制到PowerShell里运行一下,然后重启服务器。# Enables TLS 1.2 on ...,需要的朋友可以参考下2016-12-12Web Components实现类Element UI中的Card卡片
这篇文章主要为大家介绍了Web Components实现类Element UI中的Card卡片实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-07-07
最新评论