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 指导方针
Apr 05 Javascript
javascript:以前写的xmlhttp池,代码
May 18 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
Sep 28 Javascript
js运动动画的八个知识点
Mar 12 Javascript
angularjs 中$apply,$digest,$watch详解
Oct 13 Javascript
基于jQuery实现火焰灯效果导航菜单
Jan 04 Javascript
HTML5 js实现拖拉上传文件功能
Nov 20 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
Mar 10 Javascript
javascript中this用法实例详解
Apr 06 Javascript
Angular4编程之表单响应功能示例
Dec 13 Javascript
如何编写一个d.ts文件的步骤详解
Apr 13 Javascript
js实现转动骰子模型
Oct 24 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判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
一段实用的php验证码函数
2016/05/19 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
非常强大的 jQuery.AsyncBox 弹出对话框插件
2011/08/29 Javascript
jQuery EasyUI API 中文文档 - Dialog对话框
2011/11/15 Javascript
基于jquery实现控制经纬度显示地图与卫星
2013/05/20 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
2015/03/03 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
2019/07/16 Javascript
[01:57]2016完美“圣”典风云人物:国士无双专访
2016/12/04 DOTA
[26:52]LGD vs EG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[47:10]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第二场 12.16
2020/12/18 DOTA
Python Tkinter简单布局实例教程
2014/09/03 Python
Python的迭代器和生成器使用实例
2015/01/14 Python
Java中重定向输出流实现用文件记录程序日志
2015/06/12 Python
Python 中的with关键字使用详解
2016/09/11 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
2019/01/07 Python
python使用selenium实现批量文件下载
2019/03/11 Python
windows 10 设定计划任务自动执行 python 脚本的方法
2019/09/11 Python
python 实现图片上传接口开发 并生成可以访问的图片url
2019/12/18 Python
pycharm安装及如何导入numpy
2020/04/03 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
为什么相对PHP黑python的更少
2020/06/21 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
CK巴西官方网站:Calvin Klein巴西
2019/07/19 全球购物
EMU Australia澳大利亚官网:澳大利亚本土雪地靴品牌
2019/07/24 全球购物
小学生竞选班干部演讲稿(5篇)
2014/09/12 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
办公用品管理制度
2015/08/04 职场文书