javascript 类型判断代码分析
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的数据类型(示例代码)
1 判断是否为数组类型 复制代码 代码如下: <STRONG><script type="text/javascript"> //<![CDATA[ var a=[0]; document.write(isArray(a),'<br/>'); function isArray(obj){ return (typeof obj=='object')&&obj.constructor==Array; } //]]> </
-
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
说明: 前段时间把 ASP VBScript 掌握得差不多的时候, 就转而学习 Javascript/Jscript, 主要是学 Jscript 啦. 不过这两者基本上没什么区别, 唯一不同的是 Jscript 没有客户端的概念. 在刚开始时, 发现 VBS 的一些实用函数 Js 好多都没有, formatNumber 呀 isArray 呀 isDate 呀 等等. 还有日期对象也是很奇怪, 不能直接加加减减, 要set***... 不过对 Javascript/Jscript 掌握到一
-
javascript中怎么做对象的类型判断
最近在翻看John Resig的大作<Pro JavaScript Techniques>,里面讲到了如何做javascript的类型判断的问题.文中介绍了两种方式,一种是使用typeof,另一种是使用constructor.略感遗憾的是作为jquery的作者,他尽然没有介绍jquery使用的类型判断方式.不过没有关系,我在这里给大家一起总结下. 在这里我首先像大家推荐一个很好用的在线编辑器:http://jsfiddle.net/.他提供了jquery.mootools.prototype和
-
javascript 类型判断代码分析
复制代码 代码如下: 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; } //原文中有小括号包裹每个逻辑与运算,但根据运算符优先级,括号可以省略
-
分享JavaScript 类型判断的几种方法
目录 一.JavaScript 基本类型 1.原始数据类型 2.引用数据类型 3.两种数据类型的存储方式 二.Javascript 数据类型判断的几种方法 1.typeof 2.instanceof 3.构造函数(constructor) 4.Object.prototype.toString.call() 三.写在最后 一.JavaScript 基本类型 首先介绍一下JavaScript中的八大基本类型 1.原始数据类型 除对象类型(object)以外的其它任何类型定义的不可变的值(值本身无法
-
详解JavaScript类型判断的四种方法
JavaScript有八种内置类型,除对象外,其他统称为"基本类型". 空值(null) 未定义(undefined) 布尔值(boolean) 数字(number) 字符串(string) 对象 (object) 符号(symbol, ES6中新增) 大整数(BigInt, ES2020 引入) Symbol: 是ES6中引入的一种原始数据类型,表示独一无二的值. BigInt:是 ES2020 引入的一种新的数据类型,用来解决 JavaScript中数字只能到 53 个二进制位(J
-
Javascript类型判断相关例题及解析
题目: 请在index.html文件中,编写arraysSimilar函数,实现判断传入的两个数组是否相似.具体需求: 1. 数组中的成员类型相同,顺序可以不同.例如[1, true] 与 [false, 2]是相似的. 2. 数组的长度一致. 3. 类型的判断范围,需要区分:String, Boolean, Number, undefined, null, 函数,日期, window. 当以上全部满足,则返回"判定结果:通过",否则返回"判定结果:不通过". 一.
-
PHP 文件类型判断代码
何为MIME类型,它是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问时,浏览器会自动使用指定应用程序来打开. 多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式. 参考链接:php文件格式(mime类型)对照表 . 1.mime_content_type()函数判断获取mime类型 mime_content_type返回指定文件的MIME类型,用法: echo mime_content_type ( 'php.gif' ) . "\n" ; echo
-
JavaScript 页面编码与浏览器类型判断代码
获取页面的编码,如果是IE浏览器用document.charset即可获取,如果用firefox需要用document.characterSet获取. 复制代码 代码如下: function getPageCharset(){ var charSet = ""; var oType = getBrowser(); switch(oType){ case "IE": charSet = document.charset; break; case "FIREF
-
JavaScript 高效运行代码分析
作者 Mark 'Tarquin' Wilton-Jones · 2006年11月2日 本文翻译自 Efficient JavaScript 原译文地址 http://kb.operachina.com/node/207 传统上,网页中不会有大量的脚本,至少脚本很少会影响网页的性能.但随着网页越来越像 Web 应用程序,脚本的效率对网页性能影响越来越大.而且使用 Web 技术开发的应用程序现在越来越多,因此提高脚本的性能变得很重要. 对于桌面应用程序,通常使用编译器将源代码转换为二进制程序.编译
-
checkbox勾选判断代码分析
复制代码 代码如下: var xieYi=document.getElementById("xieYi");if(!xieYi.checked){ alert("请先阅读并勾选注册协议!"); return; } 最开始这样写,不过并不是所有的情况都需要勾选这个协议,协议有时不会在前台页面显示,所以改了第二种 复制代码 代码如下: var xieYi=document.getElementById("xieYi"); i
-
javascript 变量作用域 代码分析
代码清单1-1 展示javascript的变量作用域的例子 //设置全局变量foo,并置为"test" var foo = "test"; //在if块中 if(true){ //将foo置为'new test' var foo = "new test"; } //如我们所见,现在foo等于'new test'了 alert(foo == "new test"); //创建一个会修改变量foo的新函数 function tes
-
正则表达式号码靓号类型判断代码
靓号检测:主要可以检测连号(正连 12345.倒连65432).AABB号.手机号码.日期号(生日号.年度号).ABBCABB号,3位以上重复号.更多类型号码检测可以根据以下表达式改造. ' 匹配6位顺增 regex.Pattern = "(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}\d" ' 匹配6位顺降 regex.Pattern = "(?:9(?=8)|8(?=7)|7(?=
随机推荐
- c++中的static修饰符示例详解
- asp获取客户端某一个图片的x,y坐标的代码
- AngularJS封装$http.post()实例详解
- bat文件加密 bat解密脚本(让bat乱码现形)
- java工具类之实现java获取文件行数
- Python实现将不规范的英文名字首字母大写
- php实现图片等比例缩放代码
- android播放视频时在立体声与单声道之间切换无变化原因分析及解决
- PHP中使用协同程序实现合作多任务第1/2页
- python实现单线程多任务非阻塞TCP服务端
- JS添加或修改控件的样式(Class)实现方法
- CCNA笔记Router
- linux系统oracle数据库出现ora12505问题的解决方法
- Oracle基本查询过滤排序示例解析
- jQuery+php实时获取及响应文本框输入内容的方法
- Android Spinner列表选择框的应用
- Java读取文件的简单实现方法
- Android ListView获得选项中的值
- linux环境下配置mysql5.6支持IPV6连接的方法
- 基于PHP实现的多元线性回归模拟曲线算法