美文网首页
数据类型检测

数据类型检测

作者: heheheyuanqing | 来源:发表于2018-06-25 21:16 被阅读12次
  • JS中有6种数据类型,分别为(5个基本数据类型和一个引用类型)undefined、null、boolean、string、object、number(es6新增symbol数据类型)
  • 引用类型中还有Array、function、Math、Date……等

那么该通过什么方法来进行检测呢


  • typeof

数据检测

typeof能够准确检测出Number、String、undefined、boolean、function;对于null、object、array则无法准确检测(null是为空对象指针因此typeof时为object)


  • instanceof

用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。


数据检测

instanceof能够正确检测出Array(当前a为Array的一个实例,a.proto指向Array),当改变原型链时,将a.proto指向为Number,使用instanceof时则显示为Number类型。
即 instanceof能够判断该变量是否为该类型的实例而不能判断该实例的原型时什么。


  • Object.prototype.toString.call

数据类型检测

当 toString 方法被调用的时候,下面的步骤会被执行:

  • 如果 this 值是 undefined,就返回 [object Undefined]
  • 如果 this 的值是 null,就返回 [object Null]
  • 让 O 成为 ToObject(this) 的结果
  • 让 class 成为 O 的内部属性 [[Class]] 的值
  • 最后返回由 "[object " 和 class 和 "]" 三个部分组成的字符串

  • constructor

根据instanceof的原理我们可以直接通过constructor进行判断


类型检测

同样的,当实例的proto进行改变时这个方法将会失去作用

参考链接:
https://github.com/mqyqingfeng/Blog/issues/28
https://www.cnblogs.com/onepixel/p/5126046.html

相关文章

  • JS-NO.3

    数据类型检测 4种方式 1:typeof 主要检测基本数据类型 不能具体检测出引用数据类型 2:constru...

  • 20170710笔记

    数据类型检测有4种方法 type of 主要用于基本数据类型检测,不能具体检测出引用数据类型 constructo...

  • 2019-03-19 js practice three

    数据类型检测有4种方法 typeof 主要用来检测基本数据类型,不能具体检测出引用数据类型 constructor...

  • Object.prototype.toString.call检测

    1. 为什么可以检测数据类型 我们知道typeof可以检测数据类型,但是是不准确的,比如 想更准备的检测数据类型可...

  • js笔记五十之数据类型检测

    数据类型检测 typeof 用来检测数据类型的运算符 使用typeof检测数据类型, 首先返回的都是一个字符串其次...

  • 数据类型检测

    数据类型检测

  • Js类型相关总结

    Js的基本数据类型 复杂数据类型 类型检测 typeof 检测检测原理是根据变量存储时低位 instanceof检...

  • javascript面试题

    数据类型 1.有哪几种数据类型 2.说说基本数据类型和引用数据类型的不同 3.如何检测数据类型 4.如何检测对象,...

  • js - 10 JS数据类型检测

    数据类型检测 typeof typeof [val] : 用来检测数据类型的运算符 typeof的局限性 : 基于...

  • 数据类型检测方法总结typeof OR call(修改this指

    使用typeof方法检测数据类型 方法不严谨,在检测数组和对象是都是object 类型的 万能的数据类型检测方式 ...

网友评论

      本文标题:数据类型检测

      本文链接:https://www.haomeiwen.com/subject/bihlyftx.html