主要有一下四种方法:

1、typeof

2、instanceof

3、constructor

4、Object.prototype.toString.call()

1、typeof

不能具体细分是什么值,只适合检测基本数据类型
typeof的返回值是字符串
string=>'string'
number=>'number'
boolean=>'boolean'
undefined=>'undefined'
Object,Array,Date,RegExp,null=>'object'
function=>'function'

2、instanceof

专门判断一个实例是否属于一个类,返回布尔值。
实例 instanceof 类=>返回布尔值
检测数据类型的时候,不能检测和处理字面量创建出来的基本数据类型的值

3、constructor

在类的原型上,可以被修改,容易导致出错。
Fn.prototype.constructor=Fn;
可以按照原型链上进行查找constructor。

4、Object.prototype.toString.call();

该方法相当于call把Object原型上的toString方法中的this修改成了这个数组,而原型
上的方法的this一般是实例,已经把this变成了这个数组,那么toString就被数组偷偷
的调用了一次。
输出结果为"[object Object]",字符串第一个值是object,第二个值是大写的数据类型
的类。作用返回当前方法执行的主体所属累的详细信息。
可以检测所有的数据类型。

JavaScript数据类型的检测的更多相关文章

  1. js数据类型的检测总结,附面试题--封装一个函数,输入任意,输出他的类型

    一.javascript 中有几种类型的值 1.基本数据类型 : 包括 Undefined.Null.Boolean.Number.String.Symbol (ES6 新增,表示独一无二的值) 特点 ...

  2. javascript 数据类型 -- 检测

    一.前言 在上一篇博文中 Javascript 数据类型 -- 分类 中,我们梳理了 javascript 的基本类型和引用类型,并提到了一些冷知识.大概的知识框架如下: 这篇博文就讲一下在写代码的过 ...

  3. JavaScript 数据类型检测总结

    JavaScript 数据类型检测总结 原文:https://blog.csdn.net/q3254421/article/details/85483462 在js中,有四种用于检测数据类型的方式,分 ...

  4. JavaScript 的数据类型及其检测

    JavaScript 有几种类型的值? Javascript 有两种数据类型,分别是基本数据类型和引用数据类型.其中基本数据类型包括 Undefined.Null.Boolean.Number.Str ...

  5. 建议2:注意Javascript数据类型的特殊性---(3)正确检测数据类型

    使用typeof预算符返回一个用于识别其运算数类型的字符串.对于任何变量来说,使用typeof预算符总是以字符串的形式返回一下6种类型之一 number string boolean object f ...

  6. JavaScript的数据类型和数据类型的检测

    数据类型 JavaScript的基础数据类型有,NaN    string   undefined    Null      Boolen    Symbol   Bigint   这些都是基础数据类 ...

  7. JavaScript的数据类型及其检测

    一.什么是数据类型 1.基本类型 值是不可改变的 var name = 'java'; name.toUpperCase(); // 输出 'JAVA' console.log(name); // 输 ...

  8. Javascript:Javascript数据类型详解

    要成为一个优秀的前端工程师,系统的学习Javascript,有夯实的Javascript基础,以及对语言本身的深刻的理解,是基本功.从Javascript数据类型开始,我将对Javascript知识体 ...

  9. JavaScript数据类型 typeof, null, 和 undefined

    JavaScript 数据类型 在 JavaScript 中有 5 种不同的数据类型: string number boolean object function 3 种对象类型: Object Da ...

随机推荐

  1. 通过拖拽prefab来存储相应的路径

    更新了一下,支持数组和嵌套数据结构. using UnityEngine; using System.Collections; using UnityEditor; using System.Refl ...

  2. HDU1520 Anniversary party 树形DP基础

    There is going to be a party to celebrate the 80-th Anniversary of the Ural State University. The Un ...

  3. webdriver常用函数总结

    #1 创建浏览器对象 driver = webdriver.Chrome() #2 设置隐式等待10秒 driver.implicitly_wait(10) #3 最大化浏览器窗口 driver.ma ...

  4. 《DSP using MATLAB》示例Example 9.7

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...

  5. 如何在CentOS系统中安装配置SNMP服务

    CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,现在有一大部分服务器在使用此操作系统:SNMP(简单网络 ...

  6. [LeetCode系列]括号生成问题

    给定n, 返回所有匹配的n对括号的可能形式. 如 给定 n = 3, 一个解集是: "((()))", "(()())", "(())()" ...

  7. [LeetCode系列]N皇后问题递归解法 -- 位操作方式

    N皇后问题: 给定8*8棋盘, 放置n个皇后, 使其互相不能攻击(即2个皇后不能放在同一行/列/正反对角线上), 求解共有多少种放置方式? 这个问题的解答网上有不少, 但是位操作解法的我看到的不多. ...

  8. 【转】简述configure、pkg-config、pkg_config_path三者的关系

    原文网址:http://www.mike.org.cn/articles/description-configure-pkg-config-pkg_config_path-of-the-relatio ...

  9. MYSQL子查询例题以及答案

    More Subqueries Quizzes Above is the ERD for the database again - it might come in handy as you tack ...

  10. bzoj 3671 [Noi2014]随机数生成器——贪心(时间复杂度分配)

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3671 设 x 为一个点的行号, y 为一个点的列号:原本想着判断一个点能不能选就是看选了的点 ...