Object.prototype.toString方法
//判断是否为函数 function isFunction(it) {return Object.prototype.toString.call(it) === '[object Function]'; }//判断是否为数组 function isArray(it) {return Object.prototype.toString.call(it) === '[object Array]'; }//判断各种类型的基函数 function isType(type) {return function(obj) {return Object.prototype.toString.call(obj) === "[object " + type + "]";} } //借助以下四个方法来判断: 比如 isObject({a:1, b:2}) var isObject = isType("Object"); var isString = isType("String"); var isArray = Array.isArray || isType("Array"); var isFunction = isType("Function");
ECMAScript 3:
在Object.prototype.toString方法被调用时,会执行以下的操作步骤:
获取this对象的[[Class]]属性的值;
计算出"[object ", 第1步的操作结果Result(1),以及 "]"连接后的新字符串.
返回第2步的操作结果Result(2).
ECMAScript 5:
在Object.prototype.toString方法被调用时,会执行以下的操作步骤:
如果this的值为undefined,返回
"[object Undefined]"
.如果this的值为null,返回
"[object Null]"
.让O成为调用ToObject(this)的结果.
让class成为O的内部属性[[Class]]的值.
返回"[object ",class, 以及 "]"连接后的新字符串.
兼容性:
为了兼容ie6这类比较古老的游览器,Object.prototype.toString.call(obj) 通常用作"Boolean Number String Function Array Date RegExp Object"这8种数据类型的判断。
null 和 undefined 建议不要用Object.prototype.toString.call(obj)来判断。
转载于:https://www.cnblogs.com/langtao/archive/2013/03/15/2961521.html
Object.prototype.toString方法相关推荐
- JavaScript中Object.prototype.toString方法的原理
在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法. <一>, ECMAScript 3 1. 在E ...
- JavaScript:Object.prototype.toString方法的原理
在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法. var arr = []; console.log(Obje ...
- 由Object.prototype.toString.call( )引发关于toString( )方法的思考
引言 前端面试中有这么一道经典的问题,如何判断一个对象是否为数组? ES5提供了一个确定对象是否为数组的函数 Array.isArray(object); 复制代码 其中,object是必须的,表示要 ...
- JavaScript:Object.prototype.toString进行数据类型判定
在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法. var arr = []; console.log(Obje ...
- 关于 Object.prototype.toString.call() 方法
Javascript中可通过typeof来获取对象的类型,但是对象如果是内置的继承Object的类型,typeof也只能返回object,不能获取对象的具体类型,如Date,Array,Boolean ...
- ECMA262 Edition5 Object,Object的属性和方法,Object.prototype的方法.
ES5,为Object添加了一批方法.了解这些方法,可以更好的理解属性描述符的应用. 所以还是很有必要读一读的.另外,这些方法用起来还是蛮给力的. 暂时对于ES5,就只放出这些吧,希望对大家有所帮助. ...
- Object.prototype.toString.call()检测
在日常开发中,我们经常需要判断某个对象是否是数组类型的,在js中检测对象类型的常见的方法有几种: 1.typeof操作符.对于Function.String.Number.Undefined这几种类型 ...
- 为什么用Object.prototype.toString.call(obj)检测对象类型?
37 Essential JavaScript Interview Questions*,中有一道javascript题: 使用 typeof bar === "object" 检 ...
- JS中的toString、Object.toString、Object.prototype.toString
不同类型值的toString方法: //Number const num = 123; num.toString(); // '123' (123).toString(); // '123' 整数必须 ...
- 【javaScript】Object.prototype.toString.call() 、 instanceof 以及 Array.isArray() 区别与优化层面的比较
1. Object.prototype.toString.call() 每一个继承 Object 的对象都有 toString 方法,如果 toString 方法没有重写的话,会返回 [Object ...
最新文章
- 介绍一款比Android原生模拟器还要快的模拟器Genymotion(转)
- Jackson使用示例:将Java对象转换成Map
- JQuery: 实现筛选功能
- AT4513-[AGC030D]InversionSum【dp】
- hitchhiker部署_《 Hitchhiker的Python机器学习指南》
- CV之 HOG特征描述算子-行人检测
- js 控制 Windows Media Player
- python 蓝牙开发_基于python实现蓝牙通信代码实例
- Android 11.0 12.0拨打接听电话默认开启免提
- autocad html 插件,cad插件有哪些
- Java是什么?Java能干什么工作?
- php服务器搬迁失败原因
- 人工智能工程化丨中小企业AI中台落地指南
- 无所不能的NumPy:我用它弹奏出了CD音质的吉他名曲“爱的罗曼史”
- 音视频技术开发周刊 | 164
- 【DM】Combating Web Spam with TrustRank - 用TrustRank对抗网络垃圾邮件
- 【论文阅读】TimbreTron : A WaveNet (Cycle GAN(CQT(audio ))) pipeline for musical timbre transfer
- 勇敢做自己,女神节快乐!
- 小程序动画-循环放大缩小的动画(一闪一闪的)
- 百问网7天物联网记录(二)
热门文章
- Linux系统编程 -- 为什么需要进程间通信??
- 引用springboot starter 的springboot项目无法引用 springboot starter依赖的项目中的类
- 【渝粤教育】国家开放大学2018年春季 0049-21T法律文书 参考试题
- 【渝粤教育】国家开放大学2019年春季 1087数学分析专题研究 参考试题
- 【渝粤教育】国家开放大学2018年春季 0032-21T农业经济学 参考试题
- 最大熵图像复原方法原理(附完整代码)
- 向量的表示及协方差矩阵
- python的单元测试unittest模块
- pytest文档4-测试用例setup和teardown
- mybatis 中的![CDATA[ ]]