使用Object.prototype上的原生toString()方法判断数据类型,使用方法如下:

Object.prototype.toString.call(value)

1.判断基本类型:

Object.prototype.toString.call(null);//”[object Null]”
Object.prototype.toString.call(undefined);//”[object Undefined]”
Object.prototype.toString.call(“abc”);//”[object String]”
Object.prototype.toString.call(123);//”[object Number]”
Object.prototype.toString.call(true);//”[object Boolean]”

2.判断原生引用类型:

函数类型
Function fn(){console.log(“test”);}
Object.prototype.toString.call(fn);//”[object Function]”
日期类型
var date = new Date();
Object.prototype.toString.call(date);//”[object Date]”
数组类型
var arr = [1,2,3];
Object.prototype.toString.call(arr);//”[object Array]”
正则表达式
var reg = /[hbc]at/gi;
Object.prototype.toString.call(arr);//”[object Array]”
自定义类型
function Person(name, age) {
this.name = name;
this.age = age;
}
var person = new Person("Rose", 18);
Object.prototype.toString.call(arr); //”[object Object]”
很明显这种方法不能准确判断person是Person类的实例,而只能用instanceof 操作符来进行判断,如下所示:
console.log(person instanceof Person);//输出结果为true

3.判断原生JSON对象:

var isNativeJSON = window.JSON && Object.prototype.toString.call(JSON);
console.log(isNativeJSON);//输出结果为”[object JSON]”说明JSON是原生的,否则不是;

注意:Object.prototype.toString()本身是允许被修改的,而我们目前所讨论的关于Object.prototype.toString()这个方法的应用都是假设toString()方法未被修改为前提的。

最新文章

  1. [python]初试页面抓取——抓取沪深股市交易龙虎榜数据
  2. Android开发学习之路-下拉刷新以及GridView的使用
  3. IE下只读INPUT键入BACKSPACE 后退问题(readonly='true')
  4. javascript练习----复选框全选,全不选,反选
  5. HTTP权威指南----缓存
  6. Collections.sort(List<T> Comparator) 自定义排序
  7. Android selector item 属性大全(按钮按下不同效果)
  8. python 3 操作 excel
  9. android 登录界面
  10. linux下安装配置svn独立服务器
  11. magento中的各种form标签
  12. dij算法为什么不能处理负权,以及dij算法变种
  13. C#/VB.NET设置Excel表格背景色
  14. 【转】vim 的各种用法,很实用哦,都是本人是在工作中学习和总结的
  15. mac下php开发环境的搭建
  16. 14Junit、反射、注解
  17. android studio的汉化 教程 及解析
  18. WorldWind源码剖析系列:窗口定制控件类WorldWindow
  19. 浅谈TCP/IP(new 常见面试问题)
  20. debian下配置双核cpu

热门文章

  1. 关于android studio几种常见的错误解决
  2. vue3事件
  3. orm 通用方法——QueryModelCount条件查询记录数
  4. SQL server 事务介绍,创建与使用
  5. python单元测试-unittest
  6. js垃圾回收机制理解
  7. C++ lambda表达式 (一)
  8. win10 WmiPrvSE.exe WMI Provider 占用CPU过高的问题
  9. ZOJ Problem Set - 3822Domination(DP)
  10. matlab中tic和toc使用方法