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类型检测的更多相关文章

  1. JS 类型检测

    typeof 适合函数对象和基本类型的判断 typeof 100instanceof 适合判断对象类型 obj instanceof Object 基于原型链判断操作符,若做操作符不是对象,则会直接返 ...

  2. js类型检测总结

    类型检测: 类和对象: Call,Apply,Bind

  3. JavaScript中类型检测

    文章首发: http://www.cnblogs.com/sprying/p/4349426.html 本文罗列了一般Js类型检测的方法,是构建Js知识体系的一小块,这篇文章是我很早之前总结的. 一. ...

  4. JavaScript 类型 检测

    前言 ECMAScript中有5种数据类型,分别为Number,Boolean,Null,Undifined和String,以及一种复杂的数据类型Object(由名值对组成,是这门语言所有对象的基础类 ...

  5. JS类型判断&原型链

    JS类型检测主要有四种 1.typeof Obj 2.L instanceof R 3.Object.prototype.toString.call/apply(); 4.Obj.constructo ...

  6. JS数组类型检测

    在强类型语言,数组类型检测是非常容易的事情(typeof就可以解决),而在弱语言JS数据类型就很容易混淆了. JS中常见的数据类型有:number.string.boolean.undefined.f ...

  7. JS中 typeof,instanceof类型检测方式

    在js中的类型检测目前我所知道的是三种方式,分别有它们的应用场景: 1.typeof:主要用于检测基本类型. typeof undefined;//=> undefined typeof 'a' ...

  8. JS中类型检测方式

    在js中的类型检测目前我所知道的是三种方式,分别有它们的应用场景: 1.typeof:主要用于检测基本类型. typeof undefined;//=> undefined typeof 'a' ...

  9. JS的静态类型检测,有内味儿了

    我们知道 TypeScript 2.3 以后的版本支持使用--checkJs对.js文件进行类型检查和错误提示. 但是由于 JavaScript 是弱类型语言,在编写代码的时候,是无法检测变量的类型的 ...

随机推荐

  1. Caused by: java.sql.SQLException: ORA-00918: column ambiguously defined

    外层t.*的时候,可能发现重复字段,所以检查内层的sql是否出现了重复字段的查询.

  2. UIBUTTON titlelabel.text 不显示

    button.titlelabel.text=@"查询";设置后运行发现没事正确显示. 查找后原来UIButton分状态的,textLabel不管用 [button setTitl ...

  3. 学习vulkan的几个有用的网址

    <ignore_js_op> 1)一个权威向导网站:https://vulkan-tutorial.com/2)Imagination图形组织官网http://imgtec.eetrend ...

  4. Redis不同类型方法整合

    1     对value操作的命令 exists(key):确认一个key是否存在 del(key):删除一个key type(key):返回值的类型 keys(pattern):返回满足给定patt ...

  5. ListView遍历每个Item出现NullPointerException的异常

    在使用ListView过程中我们有时候需要遍历取得每个Item项中的一些数据(比如每个Item里面有TextView,需要获取它的文本等等),但是我们在遍历过程中经常会遇到NullPointerExc ...

  6. Apache 打开网页的时候等待时间过长的解决方案

    服务器搭建后经常在打开页面的时候,等待很长时间,有时候,都超过一分钟了,然后才能打开,但是打开后,速度又很快,休息一会再点击,又会很慢了,遇到了这种问题很头疼,由于不是专业做服务器配置的,所以刚开始没 ...

  7. Python3.4如何读写Excel

    在python3.x(散仙使用的版本是python3.4)里,我们应该如何操作excel. 首先在python3.4里,我们可以使用新的python类库,来支持3.x之后的读写excel 针对 03版 ...

  8. Angular初学

    简介: angularjs是基本js开发的一个前端类库,主要致力于减轻开发人员在开发Ajax应用过程中的痛苦,适合来做单应用. 客户端模板: Angualr中,模板和数据都会被发送到浏览器中,然后在客 ...

  9. IOS 7 风格Checkbox

    Switchery Switchery is a simple component that helps you turn your default HTML checkbox inputs into ...

  10. 深度系统deepin使用初体验

    最近使用linux系统比较多,因为很多项目要用到,而且厌烦了windows流氓软件各种广告的繁琐,因此决定在自己的本子上安装linux系统.然后了解到了deepin操作系统,竟然是武汉一个公司发行的版 ...