码迷,mamicode.com
首页 > Web开发 > 详细

如何区分js数据类型

时间:2018-08-06 16:25:47      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:对象   属性   操作   new   call   aaa   字符串   区分   不能   

js中有六大数据类型,null,undefined,Number,String,Boolean,Object(引用类型包含Array,Function);

首先你可能会想到

typeof操作符

typeof操作符的结果有六种,都是字符串:  分别是Undefined,String,Boolean,Number,Object,Function。

可以看出typeof对于区分数据类型有两大问题

    问题1    null也返回Object,null是空对象引用 

    问题2    对于对象实例的构造类是不能区分的,仅仅对Function有一定识别能力

instanceof  运算符

instanceof运算符用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上

function Person(){};

var p =new Person();

console.log(p instanceof Person);//true

解决方案

Object.prototype.toString.call

例如: Object.prototype.toString.call(‘aaaa‘)    //  [object String]

通过调用该方法可以获取对象的构造class类

 

如何区分js数据类型

标签:对象   属性   操作   new   call   aaa   字符串   区分   不能   

原文地址:https://www.cnblogs.com/shiyujian/p/9430732.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!