javascript 类型判断代码分析


Posted in Javascript onMarch 28, 2010
var is = function(obj,type){ 
var toString=Object.prototype.toString,undefined; 
return obj===null&&type==='Null'|| 
obj===undefined&&type==='Undefined'|| 
toString.call(obj).slice(8,-1)===type; 
} 
//原文中有小括号包裹每个逻辑与运算,但根据运算符优先级,括号可以省略 
//第一行声明undefined,个人理解是为了提高性能,不必再去顶级作用域中查询undefined.

根据ECMA-262中的解释,Object.prototype.toString(),将返回对象实例的类型,返回格式"[object ", class, and "]"字符串。
所以 通过 slice截取'class'值,也就是类型值。
其中null与undefined例外,因为他们返回的是
IE中[object Object]
标准浏览器[object Window]。
因此单独拿出判断。
相关文章:javascript 深拷贝

Javascript 相关文章推荐
JavaScript 基础问答三
Dec 03 Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
Jun 20 Javascript
JS 实现点击a标签的时候让其背景更换
Oct 15 Javascript
JS动态日期时间的获取方法
Sep 28 Javascript
高效的jquery数字滚动特效
Dec 17 Javascript
两行代码轻松搞定JavaScript日期验证
Aug 03 Javascript
AngularJS利用Controller完成URL跳转
Aug 09 Javascript
jQuery实现判断控件是否显示的方法
Jan 11 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
Feb 14 Javascript
JavaScript实现反转字符串的方法详解
Apr 27 Javascript
原生JS实现多个小球碰撞反弹效果示例
Jan 31 Javascript
vue实现文字加密功能
Sep 27 Javascript
js chrome浏览器判断代码
Mar 28 #Javascript
JavaScript 学习笔记一些小技巧
Mar 28 #Javascript
JavaScript 学习笔记二 字符串拼接
Mar 28 #Javascript
jQuery 美元符冲突的解决方法
Mar 28 #Javascript
分享十五个最佳jQuery 幻灯插件和教程
Mar 27 #Javascript
Jquery 1.42 checkbox 全选和反选代码
Mar 27 #Javascript
网络图片延迟加载实现代码 超越jquery控件
Mar 27 #Javascript
You might like
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
jQuery学习笔记 获取jQuery对象
2012/09/19 Javascript
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
Google 地图获取API Key详细教程
2016/08/06 Javascript
关于Vue.js一些问题和思考学习笔记(1)
2016/12/02 Javascript
js获取隐藏元素的宽高
2017/02/24 Javascript
JavaScript数据结构学习之数组、栈与队列
2017/05/02 Javascript
JavaScript两种计时器的实例讲解
2019/01/31 Javascript
微信小程序页面间传值与页面取值操作实例分析
2019/04/30 Javascript
layer.alert自定义关闭回调事件的方法
2019/09/27 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
python双向链表实现实例代码
2013/11/21 Python
python模块之time模块(实例讲解)
2017/09/13 Python
python3个性签名设计实现代码
2018/06/19 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
Python实现子类调用父类的初始化实例
2020/03/12 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
导致python中import错误的原因是什么
2020/07/01 Python
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
PHP如何去执行一个SQL语句
2016/03/05 面试题
JSF面试题:如何管量web层中的Bean,用什么标签。如何通过jsp页面与Bean绑定在一起进行处理?
2012/10/05 面试题
EJB3推出JPA的原因
2013/10/16 面试题
领导干部培训感言
2014/01/23 职场文书
小学生秋游活动方案
2014/02/23 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
财务人员个人工作总结
2015/02/27 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
幼儿园小班开学寄语(2016秋季)
2015/12/03 职场文书
go语言中GOPATH GOROOT的作用和设置方式
2021/05/05 Golang
vue elementUI表格控制对应列
2022/04/13 Vue.js
Nginx如何获取自定义请求header头和URL参数详解
2022/07/23 Servers