通过 Object.prototype.toString.call() 进行类型判断
为什么80%的码农都做不了架构师?>>>
var oP = Object.prototype,
toString = oP.toString;console.log(toString.call([123]));//[object Array]
console.log(toString.call('123'));//[object String]
console.log(toString.call({a: '123'}));//[object Object]
console.log(toString.call(/123/));//[object RegExp]
console.log(toString.call(123));//[object Number]
console.log(toString.call(undefined));//[object Undefined]
console.log(toString.call(null));//[object Null]
//....
标准浏览器中完美的作到,但是(为什么要说但是呢)IE6中,却会出现以下问题:
var oP = Object.prototype,
toString = oP.toString;function typeOf(value) {if (null === value) {return 'null';}var type = typeof value;if ('undefined' === type || 'string' === type) {return type;}var typeString = toString.call(value);switch (typeString) {case '[object Array]':return 'array';case '[object Date]':return 'date';case '[object Boolean]':return 'boolean';case '[object Number]':return 'number';case '[object Function]':return 'function';case '[object RegExp]':return 'regexp';case '[object Object]':if (undefined !== value.nodeType) {if (3 == value.nodeType) {return (/\S/).test(value.nodeValue) ? 'textnode': 'whitespace';} else {return 'element';}} else {return 'object';}default:return 'unknow';}
}
转载于:https://my.oschina.net/sfm/blog/33197
通过 Object.prototype.toString.call() 进行类型判断相关推荐
- 【javaScript】Object.prototype.toString.call() 、 instanceof 以及 Array.isArray() 区别与优化层面的比较
1. Object.prototype.toString.call() 每一个继承 Object 的对象都有 toString 方法,如果 toString 方法没有重写的话,会返回 [Object ...
- 数据类型的判断 --Object.prototype.toString.call(obj)精准检测对象类型
数据类型的判断 typeof typeof返回一个表示数据类型的字符串,返回结果包括:number.boolean.string.symbol.object.undefined.function等7种 ...
- 为什么用Object.prototype.toString.call(obj)检测对象类型?
37 Essential JavaScript Interview Questions*,中有一道javascript题: 使用 typeof bar === "object" 检 ...
- JavaScript:Object.prototype.toString进行数据类型判定
在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法. var arr = []; console.log(Obje ...
- JavaScript中Object.prototype.toString方法的原理
在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法. <一>, ECMAScript 3 1. 在E ...
- Object.prototype.toString.call()检测
在日常开发中,我们经常需要判断某个对象是否是数组类型的,在js中检测对象类型的常见的方法有几种: 1.typeof操作符.对于Function.String.Number.Undefined这几种类型 ...
- JavaScript:Object.prototype.toString方法的原理
在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法. var arr = []; console.log(Obje ...
- 由Object.prototype.toString.call( )引发关于toString( )方法的思考
引言 前端面试中有这么一道经典的问题,如何判断一个对象是否为数组? ES5提供了一个确定对象是否为数组的函数 Array.isArray(object); 复制代码 其中,object是必须的,表示要 ...
- JS中的toString、Object.toString、Object.prototype.toString
不同类型值的toString方法: //Number const num = 123; num.toString(); // '123' (123).toString(); // '123' 整数必须 ...
最新文章
- 智能医疗?轻松实现!
- 一份整理 | PyTorch是什么,为何选择它
- 阿里云马劲:保证云产品持续拥有稳定性的实践和思考\n
- Struts2-表单验证的两种方式
- C++语言程序设计视频教程_清华大学_郑莉(基础篇+进阶篇)
- Android 设置Activity透明
- 某业务自助开通账户问题排查
- 内置方法-str方法定制变量输出信息
- 解决IE6下 position的fixed定位问题
- 有赞美业微前端的落地总结
- dotnet 基于 dotnet format 的 GitHub Action 自动代码格式化机器人
- Flask --- 框架快速入门
- JZOJ4742 单峰
- toj 2798 Farey Sequence
- 将idea maven项目中webapp文件夹的改为Web Root
- Ubuntu VirtualBox 安装问题解决
- 12C GDS安装简记
- 控制器之间跳转实现转场动画,动画控制器概念
- 作业及管理系统(二)
- ms08-067漏洞 远程溢出入侵测试