美文网首页
js之获取对象类型的几种方式

js之获取对象类型的几种方式

作者: shandamengcheng | 来源:发表于2020-03-21 11:02 被阅读0次
  1. 通过typeof
    typeof的所有返回值包括以下几种:
  • number
  • boolean
  • string
  • undefined
  • function
  • symbol
  • object
    对于基本类型或者函数,通过typeof很好判断,但是对于object类型,使用typeof就显得宽泛了。
  1. 通过instanceof
    instanceof的原理是,判断构造函数的原型是否在这个对象的原型链上。
    比如:

[1,2,3] instanceof Object // true
这是因为,[1,2,3]是一个Array类型实例,即,[1,2,3]的原型对象为Array.prototype,而Array.prototype这个对象中的一个内部指针(proto_),即它的原型指针指向Object.prototype,因此Object.prototype就在[1,2,3]的原型链上,因此结果为true.

  1. 通过constructor
    我们知道,在一个实例的原型对象上有一个constructor属性,指向创建这个实例的构造函数,因此,我们可以通过oject.constructor来获取它的构造函数,也就是它所属的类型。

  2. 通过Object.prototype.toString()
    Object.prototype.toString()返回的是对象类型,格式为"[object Array]',类似这样。但是这样返回的是Object.prototype的对象类型,即[object Object] . 如果想要用在每个特定的实例上,应该加上call或者apply方法,比如:Object.prototype.toString.call(obj)。这样,返回的就是obj的类型了。

> 需要注意的是:如果call或者apply里面的参数是一个数字,布尔值,或者字符串,那么返回的形式为:[object Number] [object Boolean] [object String]。这是为什么呢,因为,Object.prototype.toString()返回的是对象类型,当对基本类型的数字,布尔值和字符串进行判断时,其实质判断的是这三种类型的基本包装类型。也就是说,先把这三种基本类型转换为各自的基本包装类型,然后再进行判断。基本包装类型是对象

相关文章

  • js之获取对象类型的几种方式

    通过typeoftypeof的所有返回值包括以下几种: number boolean string undefin...

  • JavaScript常见的继承方式

    前言 JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一。那么在JS中常见的继承方式有几种呢? 方式一、原...

  • JS继承的几种方式

    JS继承的几种方式 (1) 属性拷贝 存在问题: 如果继承过来的成员是引用类型的话,那么这个引用类型的成员在父对象...

  • jQuery对象和DOM对象

    1、dom对象(js对象)使用js的方式获取到的元素就是js对象。 例如: 裤子 入口文件: 1、js对象 $(f...

  • Dom操作

    js获取元素的几种方式 根据id属性的值获取元素,返回来的是一个元素对象 根据标签名字获取元素,返回来的是一个伪数...

  • 对象

    js对象 js对象是j's的基本数据类型, js中的对象是动态的, 可以新增属性,也可以删除属性。 1.获取时间 ...

  • javascript new一个对象的时候,内部发生了什么

    我们都知道创建对象时,js有几种方式 1: 对象字面量的方式 2: 通过Object.create() 3: 通过...

  • 03-$符号-jquery与js相互转换

    $符号-jquery与js相互转换 作者:曾庆林 获取Dom对象 JavaScript方式 jQuery方式 js...

  • Edge浏览器js获取ip地址。

    js获取ip地址的几种方式: 1.activex(edge放弃) 2.WebRTC-------RTC Data ...

  • JavaScript获取iPhone设备型号

    js获取设备信息有以下几种方式 使用浏览器的userAgent获取(对安卓有效) 通过屏幕尺寸判断,但是这种方式只...

网友评论

      本文标题:js之获取对象类型的几种方式

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