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 相关文章推荐
一个级联菜单代码学习及removeClass与addClass的应用
Jan 24 Javascript
JavaScript实现页面实时显示当前时间的简单实例
Jul 20 Javascript
悬浮数字的实现案例
Feb 19 Javascript
jquery中validate与form插件提交的方式小结
Mar 26 Javascript
js实现可输入可选择的select下拉框
Dec 21 Javascript
微信小程序支付及退款流程详解
Nov 30 Javascript
node.js中fs文件系统目录操作与文件信息操作
Feb 24 Javascript
脚手架vue-cli工程webpack的作用和特点
Sep 29 Javascript
vue实现滑动到底部加载更多效果
Oct 27 Javascript
vue 实现LED数字时钟效果(开箱即用)
Dec 08 Javascript
解决vue addRoutes不生效问题
Aug 04 Javascript
微信小程序实现自定义底部导航
Nov 18 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
PHP simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
php实现文件编码批量转换
2014/03/10 PHP
PHP耦合设计模式实例分析
2018/08/08 PHP
Laravel find in set排序实例
2019/10/09 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
JavaScript 继承详解(二)
2009/07/13 Javascript
Js 刷新框架页的代码
2010/04/13 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
node.js中的socket.io的广播消息
2014/12/15 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
Vue.js进行查询操作的实例详解
2017/08/25 Javascript
原生JS封装animate运动框架的实例
2017/10/12 Javascript
如何使用gpu.js改善JavaScript的性能
2020/12/01 Javascript
Python编程实现使用线性回归预测数据
2017/12/07 Python
python3实现字符串的全排列的方法(无重复字符)
2018/07/07 Python
python实现socket+threading处理多连接的方法
2019/07/23 Python
python使用minimax算法实现五子棋
2019/07/29 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
python dataframe NaN处理方式
2019/12/26 Python
使用celery和Django处理异步任务的流程分析
2020/02/19 Python
浅谈Python协程
2020/06/17 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
2020/07/09 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
The Athlete’s Foot新西兰:新西兰最大的运动鞋零售商
2019/12/23 全球购物
用友笔试题目
2016/10/25 面试题
法律专业个人实习自我鉴定
2013/09/23 职场文书
大学生通用个人的自我评价
2014/02/10 职场文书
安全月宣传标语
2014/10/07 职场文书
个人德育工作总结
2015/03/05 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
你真的了解redis为什么要提供pipeline功能
2021/06/22 Redis
SpringBoot集成Druid连接池连接MySQL8.0.11
2021/07/02 Java/Android
浅谈Redis缓冲区机制
2022/06/05 Redis