如何准确的判断一个数据的类型(使用Object.prototype.toString.call())

1.typeof:只能判断基本数据类型,不能判断引用数据类型,判断出来的都是Object
2.instanceof:只能进行类型的对比,不能进行类型的判断
3.var arr = [];
console.log(Object.prototype.toString.call(arr));//输出[object Array],是一个数组对象
4.var arr = [];
console.dir(arr);//输出Array(0)
5.Object身上的toString方法与其他对象身上的toString方法不是一个方法,而是其他对象继承Object原型以后改写的toString方法:
var arr = [];
arr.toString()得到的是一个空字符串""
然而Object.prototype.toString.call(arr)输出的是[object Array],说明他俩不是同一个方法
6.在Array.prototype.slice.call(arguments).slice(1)中,arguments本身没有slice方法,所以需要借助call这个方法去借用slice方法。而call方法是用来改变this指向的,也就是说Array此时的指向arguments,所以arguments拥有了slice方法
7.instanceof
function Fn(){console.log(this instanceof Fn);
}
Fn();//结果为false(说明此时this不指向函数本身,即Fn。因为只是执行一个函数时,this指向window)
如果是new Fn();,则结果为true(说明此时this指向函数本身,即Fn。因为当new一个函数时,this会指向实例化对象,也就是Fn)

转载于:https://www.cnblogs.com/Leslie-Cheung1584304774/p/10544155.html

如何准确的判断一个数据的类型相关推荐

  1. 【原生】封装一个判断数据类型的函数的方法,准确判断一个数据的类型

    // 判断一个数据类型的函数封装的方法,obj是用来接收传入的参数的function gettype(obj) {var type = typeof obj;if (type !== 'object' ...

  2. java-commen判断一个数据是否存在于列表中

    /** * 判断一个数据是否存在于列表中 *  * @param list * @param str * @return */ public static boolean isExist(List l ...

  3. Python如何判断一个数据的小数点后面首个非零数字位于小数点后面第几位

    文章目录 前言 一.背景介绍 二.实现方法 1.引入库 2.算法实现 总结 前言 本文主要介绍一种判断一个浮点数的小数点后面首个非零数字位于小数点后面第几位的方法.该方法有时能帮助我们找到划分坐标轴的 ...

  4. 如何判断JavaScript数据具体类型

    昨晚做了阿里的题目,让我写一个函数,可以判断数据的具体类型.其实题目很简单的...但是真的是自己不太注意吧,写的很糟糕啊. 然后今天就自己写了一个,然后又到晚上搜了下,看看别人的写法,结果发现自己有点 ...

  5. 如何判断一个数据是NaN

    NaN不是一个数字且数据类型为number,而且不等于自身 可直接采用内置方法isNaN function isNaN(n){ if(n! == n){ return true; }else{ ret ...

  6. java 校验文件类型_java如何判断一个文件的类型 | 学步园

    用文件头判断.直接读取文件的前几个字节. 常用文件的文件头如下: JPEG (jpg),文件头:FFD8FF PNG (png),文件头:89504E47 GIF (gif),文件头:47494638 ...

  7. Java如何判断一个上传文件的内容类型

    关于如何判断一个文件的类型,在如何判断一个文件的类型_jimmyleeee的博客-CSDN博客已经介绍了,但是在实际运用于真正的文件上传时,还是有些注意事项需要注意的. 在进入主题之前,首先需要简单介 ...

  8. 如何判断一个元素在亿级数据中是否存在?

    本文转载于公众号:crossoverJie 前言 最近有朋友问我这么一个面试题目: 现在有一个非常庞大的数据,假设全是 int 类型.现在我给你一个数,你需要告诉我它是否存在其中(尽量高效). 需求其 ...

  9. 【算法】BloomFilter 如何判断一个元素在亿级数据中是否存在?

    1.概述 转载: 如何判断一个元素在亿级数据中是否存在? 前言 最近有朋友问我这么一个面试题目: 现在有一个非常庞大的数据,假设全是 int 类型.现在我给你一个数,你需要告诉我它是否存在其中(尽量高 ...

最新文章

  1. spring4声明式事务--01注解方式
  2. AI业务强劲增长,百度迎来了“推卒过河”的纵横时刻
  3. 【Python】Pandas中的宝藏函数-transform()
  4. Java EE——Mybatis 框架学习
  5. vue项目如何放到服务器上,Vue项目怎么上传到云服务器
  6. 音视频技术开发周刊(第122期)
  7. Linux终端操作MySQL常用命令
  8. 西北工业大学计算机毕业论文,光纤通信发射机本科毕业论文 西北工业大学.docx...
  9. CF1090F - How to Learn You Score(构造)
  10. xlwings 合并单元格 读取_xlwings,让excel飞起来
  11. [蓝桥杯]2019年第十届省赛真题C/C++ B组 填空+大题
  12. 数组排列组合算法汇总
  13. mybatis mysql like 传参问题_记一次使用mybatis进行like 模糊查询遇到的问题
  14. onclick获取当前节点
  15. 高德定位获取经纬度,街道城市名称
  16. Zune支持哪些格式?
  17. 月销10w支!不用洗牙,牙齿也能白到发光!买它,这支黑科技美白电动牙刷
  18. 笔试题——硬币与金币(概率)
  19. 分号的html文本,在Vue中利用v-HTML按分号将文本换行的例子_輕微_前端开发者
  20. creator shader, 河面水流的效果 噪声图的花式用法

热门文章

  1. Spring boot实体类中常用基本注解
  2. Intellij IDLE 中javafx使用与配置
  3. 地推不同HTTP协议解决的问题
  4. 两个员工,一个做事认真但效率低,一个迟到早退但效率高,只能留一个我该留哪个?
  5. 你第一次去丈母娘家时发生了哪些趣事?
  6. 客户购买产品的本质是什么,如何快速寻找到客户的需求,提高转化率?
  7. 就算给穷人一百万,他们也很难赚到一块钱利润
  8. 一般来讲,大公司都有自己的决策团队
  9. “画大饼”行走江湖的必备技能
  10. python之三元表达式嵌套三元表达式解析