typeof 和 instanceOf的区别 || JS判断数据类型的方法
发布日期:2021-11-21 16:35:39 浏览次数:10 分类:技术文章

本文共 642 字,大约阅读时间需要 2 分钟。

typeof 是一个一元运算,放在一个运算数之前,返回值是一个字符串,该字符串说明运算数的类型。typeof 一般只能返回如下几个结果:

number,boolean,string,function,object,undefined。我们可以使用 typeof 来获取一个变量是否存在;如果检测对象或null的话都会返回‘object’;

instanceof 用于判断一个变量是否某个对象的实例;所有引用类型值都是object的实例,所以在检测一个引用类型值和Object构造函数时,instanceof操作符会一直返回true。如用instanceof操作符检测基本类型值时,会一直返回false,原因很简单,因为基本类型不是对象。

用constructor判断

***用Object.prototype.toString.call(data);此种方式可以准确的判断出数据类型。

原理:
1、在JavaScript中,一切皆为对象,强制将变量转换成为字符串,使它暴露出内部的[[class]]属性。
2、首先获取对象内部属性[[class]](每个对象都有属于自己的[[class]]),然后根据这个属性返回一个类似于"[object Number]"的字符串作为结果,    ([[]]用来表示语言内部用到的,外部不可直接访问的属性,称之为内部属性。)。利用此方法并且配合call方法可以取得任何对象内部属性的[[class]],然后把类型检测转化为字符串比较,以此来判断数据类型。

转载地址:https://blog.csdn.net/yyychocolate/article/details/108092080 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:事件冒泡和事件捕获
下一篇:箭头函数和普通函数的区别

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月19日 21时28分46秒