js类型检测
1、typeof 或者 typeof() 适合基本类型及function检测,遇null失效
ex: typeof 100 返回值为 "number"
typeof true 返回值为 "boolean"
typeof function(){} 返回值为 "function"
typeof undefined 返回值为 "undefince"
typeof new Object() 返回值为 "object"
typeof [1,2] 返回值为 "object"
typeof NaN 返回值为 "number"
typeof null 返回值为 "object"
2、instanceof(基于原型链判断) 适合自定义对象,也可用来检测原生对象,在不同iframe和window间检测时失效
obj instanceof Object #instanceof操作符期望左操作数是一个对象,如果不是,会返回false,期望右操作符实一个函数对象或函数构造器,若不是,会跑出一个type error异常
3、Object.prototype.toString.apply() 适合内置对象和基本类型,遇到null和undefined失效
注意:IE6/7/8 Object.prototype.toString.apply(null) 返回值为 "[object Object]"
Object.prototype.toString.apply([]) 返回值为 "[object Array]"
Object.prototype.toString.apply(function(){}) 返回值为 "[object Function]"
Object.prototype.toString.apply(null) 返回值为 "[object Null]"
Object.prototype.toString.apply(undefined) 返回值为 "[object Undefinde]"
4、constructor
5、duck type
js类型检测的更多相关文章
- JS 类型检测
typeof 适合函数对象和基本类型的判断 typeof 100instanceof 适合判断对象类型 obj instanceof Object 基于原型链判断操作符,若做操作符不是对象,则会直接返 ...
- js类型检测总结
类型检测: 类和对象: Call,Apply,Bind
- JavaScript中类型检测
文章首发: http://www.cnblogs.com/sprying/p/4349426.html 本文罗列了一般Js类型检测的方法,是构建Js知识体系的一小块,这篇文章是我很早之前总结的. 一. ...
- JavaScript 类型 检测
前言 ECMAScript中有5种数据类型,分别为Number,Boolean,Null,Undifined和String,以及一种复杂的数据类型Object(由名值对组成,是这门语言所有对象的基础类 ...
- JS类型判断&原型链
JS类型检测主要有四种 1.typeof Obj 2.L instanceof R 3.Object.prototype.toString.call/apply(); 4.Obj.constructo ...
- JS数组类型检测
在强类型语言,数组类型检测是非常容易的事情(typeof就可以解决),而在弱语言JS数据类型就很容易混淆了. JS中常见的数据类型有:number.string.boolean.undefined.f ...
- JS中 typeof,instanceof类型检测方式
在js中的类型检测目前我所知道的是三种方式,分别有它们的应用场景: 1.typeof:主要用于检测基本类型. typeof undefined;//=> undefined typeof 'a' ...
- JS中类型检测方式
在js中的类型检测目前我所知道的是三种方式,分别有它们的应用场景: 1.typeof:主要用于检测基本类型. typeof undefined;//=> undefined typeof 'a' ...
- JS的静态类型检测,有内味儿了
我们知道 TypeScript 2.3 以后的版本支持使用--checkJs对.js文件进行类型检查和错误提示. 但是由于 JavaScript 是弱类型语言,在编写代码的时候,是无法检测变量的类型的 ...
随机推荐
- [Android Tips] 23. How to fail/stop Gradle task immediately if some conditions are not met
throw new GradleException("conditions are not met") 参考 How to fail/stop task immediately i ...
- Altium Designer 常用的快捷键
ctrl+r 复制并重复黏贴 ctrl+shift+v 只能黏贴 shift+c 取消选择 sp ...
- ThroughRain第一次冲刺(每天更新)
第一次冲刺时间: 11月14-11月23 第一次冲刺目标及分配: 1.注册登录界面 认领:王大华 2.界面跳转 认领:梁仕标 3.点餐界面 ...
- 利用Servlet导出Excel
-----因为Excel可以打开HTML文件,因此可以利用页面的Form表单把页面中的table内容提交给Servlet,然后后台把提交上来的table内容转换成文件流的形式,并以下载的形式转给客户端 ...
- 打开QQ会话
Android:String url="mqqwpa://im/chat?chat_type=wpa&uin=123456";startActivity(new Inten ...
- 夺命雷公狗-----React_native---2---sdk的安装
首先回到刚才的那个android的目录下,创建一个sdk文件夹 解压完成后目录结构如下所示: 然后就来设置环境变量,我们需要添加一个"ANDROID_HOME" 然后将这3个文件夹 ...
- 实体框架高级应用之动态过滤 EntityFramework DynamicFilters
实体框架高级应用之动态过滤 EntityFramework DynamicFilters 我们开门见山,直奔主题. 一.EntityFramework DynamicFilters 是什么,它能做什么 ...
- 图说js中的this——深入理解javascript中this指针
没搞错吧!js写了那么多年,this还是会搞错!没搞错,javascript就是回搞错! ………… 文章来源自——周陆军的个人网站:http://zhoulujun.cn/zhoulujun/html ...
- PostgreSQL入门
这篇文章主要介绍我在最近工作中接触到的数据库PostgreSQL,做个入门记录,以便自己日后回顾. 1.下载安装,安装配置过程可以参考http://blog.chinaunix.net/uid-354 ...
- 程序员面试大揭秘——应聘微软、亚马逊、谷歌、苹果等IT公司你都要做什么准备?
对于多数求职者而言,面试好似一个迷局.你去了,见了几个面试官,答了一堆问题,然后,或两手空空离开,或幸运地拿到录用通知. 你有没有想过: 面试结果是怎么得出的? 面试官会不会互相交流? 公司最看重哪些 ...