js检测数据类型有那些方法

简介: js检测数据类型有那些方法
  1. typeof

直接在计算机底层基于数据类型的值(二进制)进行检测
tyepof null "object" 对象存储在计算机中,都是以000开始的二进制存储,null也是,所以检测出来的结果是对象
typeof 普通对象/数组对象/正则对象/日期对象 "object"

  1. instanceof 检测当前实例是否属于这个类的

底层机制:只要当前类出现在实例的原型链上,结果都是true
由于我们可以肆意的修改原型的指向,所以检测出来的结果是不准的
不能检测基本数据类型

  1. constructor

用起来看似比instanceof还好用一些(基本类型支持的)
constructor可以随便改,所以也不准

  1. Object.prototype.toString.call(value)

标准检测数据类型的办法:Object.prototype.toString不是转换为字符串,是返回当前实例所属类的信息
标准检测的办法 "[object Number/String/Boolean/Null/Undefined/Symbol/Object/Array/RegExp/Date/Function]"
下面封闭一个判断数据类型方法:

function detectionType(data) {
   
    const class2type = {
   
        '[object Null]': "null",
        '[object Date]': "date",
        '[object Error]': "error",
        '[object Array]': "array",
        '[object Number]': "number",
        '[object Object]': "object",
        '[object RegExp]': "regexp",
        '[object String]': "string",
        '[object Symbol]': "symbol",
        '[object Boolean]': "boolean",
        '[object Function]': "function",
        '[object Undefined]': "undefined",
    };
    // 基本数据类型都采用typeof检测
    if (typeof data === "object" || typeof data === "function") {
   
        return class2type[Object.prototype.toString.call(data)] || "object";
    } else {
   
        return typeof data;
    }
}
相关文章
|
2天前
|
JavaScript
js两种移除事件的方法
js两种移除事件的方法
11 2
|
2天前
|
JavaScript 前端开发
JS几种拼接字符串的方法
JS几种拼接字符串的方法
11 1
|
2天前
|
JavaScript 前端开发 索引
JS 删除数组元素( 5种方法 )
JS 删除数组元素( 5种方法 )
9 1
|
3天前
|
JavaScript 前端开发 开发者
【干货拿走】JavaScript中最全的数据类型判断方法!!!!
【干货拿走】JavaScript中最全的数据类型判断方法!!!!
10 1
|
2天前
|
JavaScript 前端开发 安全
JavaScript实现跳转的方法
JavaScript实现跳转的方法
7 0
|
3天前
|
JavaScript 索引
js数组去重的常见方法
js数组去重的常见方法
11 0
|
5天前
|
JavaScript
js两种移除事件的方法
js两种移除事件的方法
|
4月前
|
前端开发 JavaScript 程序员
探索JavaScript宝库:打开基础知识与实用技能之门(数据类型与变量+ 条件与循环+函数与模块+DOM+异常+ES6)
探索JavaScript宝库:打开基础知识与实用技能之门(数据类型与变量+ 条件与循环+函数与模块+DOM+异常+ES6)
32 0
|
存储 JavaScript 前端开发
JavaScript | 数据类型,常量以及变量
这应该是JavaScript系列教程第三期,这期准备讲一下数据类型,常量以及变量的定义。
|
存储 JavaScript 前端开发
JavaScript之 数据类型 与 变量
JavaScript之 数据类型 与 变量
94 0
JavaScript之 数据类型 与 变量