js中typeof数据检测

js中typeof数据检测

js中的数据检测

  • typeof [value]; 检测数据的类型
  • [example] instanceof [class]; 检测数据类型
  • [example].constructor===[class];检测实例和类关系的,从而检测数据类型
  • Object.prototype.toString.call([value]);检测数据类型

typeof的细节点:

  1. typeof检测的结果首先是一个字符串,字符串中包含了对应的数据类型(如:’number’、‘string’、‘boolean’、‘undefined’、‘object’、‘function’、‘symbol’、‘bigint’)

  2. 特殊的检测结果;

    • NaN/Infinity都是数字类型的,检测结果都为:“number”

    • null的结果是”object"(这是浏览器的BUG:所有的值在计算中都已二进制存储,浏览器中把前三位000的最为对象,而null的二进制前三位就是000,所以被识别为对象,但事实上他不是对象,他是对象指针,是基本数据类型)

    • 普通对象/数组对象/正则对象都是"object"类型,这样就无法基于typeof区分普通对象还是数组对象了

    • 检测小技巧

      console.log(typeof []); // =>"object"
      console.log(typeof typeof typeof []); //=>"string"
      

      由于typeof返回的结果是一个字符串(字符串中包含了对应的类型),所以连续出现两次及两次以上的typeof检测的结果都是“string"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值