js类型判断的方法(JS的基本类型共有三种)

今天分享3种JavaScript类型判断的方法:typeof、instanceof、constructor。首先先看下所有的数据类型:空值(null)未定义(undefined)布尔值(boolean)数字(number)字符串(string)对象

今天分享3种JavaScript类型判断的方法:typeof、instanceof、constructor。


首先先看下所有的数据类型:

  • 空值(null)
  • 未定义(undefined)
  • 布尔值(boolean)
  • 数字(number)
  • 字符串(string)
  • 对象 (object)
  • 符号(symbol, ES6中新增)
  • 大整数(BigInt, ES2020 引入)

除去object,其他的我们统称基本类型,最后两个类型为新引入的前端数据类型。

Symbol: 是ES6中引入的一种原始数据类型,表示独一无二的值。

BigInt:是 ES2020 引入的一种新的数据类型,用来解决 JavaScript中数字只能到 53 个二进制位(JavaScript 所有数字都保存成 64 位浮点数,大于这个范围的整数,无法精确表示的问题。具体可查看:新数据类型 — BigInt


1.typeof

example:

console.log(typeof \"\"); // string
console.log(typeof 1 ); // number
console.log(typeof NaN ); // number
console.log(typeof true); // boolean
console.log(typeof undefined); // undefined
console.log(typeof function(){}); // function
console.log(typeof isNaN); // function
console.log(typeof Symbol()); // symbol
console.log(typeof 123n); // bigint
console.log(typeof []); // object
console.log(typeof {}); // object
console.log(typeof null); // object
console.log(typeof new Date()); // object
console.log(typeof new RegExp()); // object

对于数组,对象,null以及时间等数据,typeof只能返回object,而不能直接返回对应的类型,还需要通过其他法判断。

2.instanceof

example:

console.log(12 instanceof Number); // false
console.log(\'22\' instanceof String); // false
console.log(true instanceof Boolean); // false
console.log(null instanceof Object); // false
console.log(undefined instanceof Object); // false
console.log(function a() {} instanceof Function); // true
console.log([] instanceof Array); // true
console.log({a: 1} instanceof Object); // true
console.log(new Date() instanceof Date); // true

简单来说就是,判断某个数据是否是由某个构造函数的实例,如果是,返回true,不是就返回false。

深层次来讲就是,instanceof 右边的prototype是否能在instanceof左侧的数据的_proto_原型链上找到,这是个遍历的过程。找到就是true。

3.constructor

example:

console.log(\'22\'.constructor === String) // true
console.log(true.constructor === Boolean) // true
console.log([].constructor === Array) // true
console.log(document.constructor === HTMLDocument) // true
console.log(window.constructor === Window) // true
console.log(new Number(22).constructor === Number) // true
console.log(new Function().constructor === Function) // true
console.log(new Date().constructor === Date) // true
console.log(new RegExp().constructor === RegExp) // true
console.log(new Error().constructor === Error) // true

constructor是追溯对象的出生地,也就是说可以知道某个对象是由哪个构造函数产生的。

原理其实是当构造函数被创建时,会在它的prototype上创建constructor属性,而该属性又指向函数本身,当实例被创建时,它的constructor会被继承,嗯….构造函数就是实例的类型。

注意:null 和 undefined 是没有 constructor 存在的,这两种类型的数据需要通过其他方式来判断。

结尾:其实还有一种方法:
Object.prototype.toString.call(),感兴趣的自己去查文档研究研究。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/25198.html

(0)
nan
上一篇 2021-09-14
下一篇 2021-09-14

相关推荐

  • 日本服务器租用受欢迎的原因是什么

    稳定可靠:日本拥有先进的网络基础设施和技术,服务器提供商通常能够提供稳定可靠的服务,保证客户的网站和应用程序能够全天候在线。低延迟:日本服务器租用可以保证在亚洲地区的用户访问速度较快,因为日本地理位置靠近亚洲其他国家,网络延迟较低。丰富的软硬件选择:日本服务器提供商通常提供各种不同配置和功能的服务器选择,满足不同客户的需求。专业技术支持:日本服务器提供商通常提供专业的技术支持团队,能够及时解

    2024-03-29
    0
  • 外贸网站如何选择日本服务器

    选择日本服务器有几个方面需要考虑:稳定性和可靠性:日本的服务器提供商通常拥有先进的技术和设备,能够保证服务器的稳定性和可靠性,确保您的网站能够正常运行,不会出现频繁的宕机现象。网络速度和响应时间:选择日本服务器可以有效地提高您的网站在日本地区的访问速度和响应时间,为用户提供更好的访问体验。SEO优化:如果您的目标客户群主要是日本用户,选择日本服务器有利于提高您的网站在日本地区的搜索引擎排名,增加网

    2024-04-03
    0
  • 服务器如何关闭端口(计算机如何关闭端口)

    服务器如何关闭端口,计算机如何关闭端口 内容导航: 怎样关闭服务器端口 怎么关闭端口 135端口在WEB服务器里有什么用 高分求教如何关掉服务器端口。 一、怎样关闭服务器端口 关闭…

    2022-09-06
    0
  • win10怎么脱离组织管理

    尊敬的用户,在您体验系统之家Win10系统过程中,如不幸误入组织管理模式,可能会导致操作受限,在此提供离职组织管理的便捷方式以解困惑。win10怎么脱离组织管理1、右键桌面此电脑然后选择属性2、在系统里面点击“高级系统设置”3、打开的系统属性里,点击计算机名的“网络ID”选项4、选择下图选项,然后点击下一步直至完成,再重启电脑即可。

    2024-02-04 技术经验
    0
  • 如何用机器学习优化SQL拼接查询

    使用机器学习优化SQL拼接查询可以通过以下步骤实现:数据准备:收集和准备用于训练的数据集,包括已有的SQL查询语句和其对应的性能数据,例如执行时间、资源消耗等。特征工程:为每个SQL查询语句提取特征,例如查询的长度、使用的表数量、使用的索引数量等。还可以考虑使用自然语言处理技术来提取语义信息。模型选择:选择合适的机器学习模型来预测查询的执行性能,可以考虑使用回归模型、决策树、随机森林等模型。模型训

    2024-04-29
    0
  • 鼠标配重是什么意思

    我们经常听到的鼠标配重块是什么意思呢,这个意思就是我们在我们使用的鼠标里加入一个或者多个铁块,这样子可以更好的增加稳定性,让我们更好的操作游戏。鼠标配重是什么意思:答:鼠标里加铁块 鼠标配重就是我们往鼠标里加入一个或者很多个铁块,当然加的数量完全看个人。这样的做法可以让我们把鼠标的性能发挥到极致,可以更稳定的控制鼠标。鼠标里为什么要配重:1、因为现在的鼠标用起来越来越轻了,然后这就导致我们随便一用

    2024-03-01
    0

发表回复

登录后才能评论