今天分享3种JavaScript类型判断的方法:typeof、instanceof、constructor。
首先先看下所有的数据类型:
除去object,其他的我们统称基本类型,最后两个类型为新引入的前端数据类型。
Symbol: 是ES6中引入的一种原始数据类型,表示独一无二的值。
BigInt:是 ES2020 引入的一种新的数据类型,用来解决 JavaScript中数字只能到 53 个二进制位(JavaScript 所有数字都保存成 64 位浮点数,大于这个范围的整数,无法精确表示的问题。具体可查看:新数据类型 — BigInt
example:
对于数组,对象,null以及时间等数据,typeof只能返回object,而不能直接返回对应的类型,还需要通过其他法判断。
简单来说就是,判断某个数据是否是由某个构造函数的实例,如果是,返回true,不是就返回false。
深层次来讲就是,instanceof 右边的prototype是否能在instanceof左侧的数据的_proto_原型链上找到,这是个遍历的过程。找到就是true。
constructor是追溯对象的出生地,也就是说可以知道某个对象是由哪个构造函数产生的。
原理其实是当构造函数被创建时,会在它的prototype上创建constructor属性,而该属性又指向函数本身,当实例被创建时,它的constructor会被继承,嗯….构造函数就是实例的类型。
注意:null 和 undefined 是没有 constructor 存在的,这两种类型的数据需要通过其他方式来判断。
结尾:其实还有一种方法:Object.prototype.toString.call(),感兴趣的自己去查文档研究研究。
本文由知识库于2021-09-14发表在龙哥云资源网,如有疑问,请联系我们。本文链接:https://www.longgeyun.com/knowledge/3463.html
上一篇tomcat版本号查看(教你如何查看tomcat版本信息)
下一篇qq浏览器ios历史版本(ios旧版软件推荐分享)
如何健康科学食用隔夜菜?
哪种维生素可缓解眼睛疲劳
为什么不建议卫生间用大理石地板 卫生间装修用大理石好吗
如何减少隔夜菜中亚硝酸盐危害?
节后综合征的主要症状有哪些
真子集和非空子集是什么意思 什么是真子集和非空子集?
哪些隔夜菜不能吃?佰佰为你盘点
合同订立后当事人能变更吗
Pr2020零基础快速入门
文字转语音App最新版3.0
APP下载页源码-带后台