var arr = [, ];
alert(arr instanceof Array);//true

以上老方法判断是否是数组,存在一个问题,就是它只适用于单执行环境(窗口),如果该窗口有其他框架(比如 iframe)则会出问题

比如:

html: <iframe frameborder="" name="result" id="result"></iframe>

script:  document.querySelector('#result').src = 'demo5.html';

//下面是deml5界面代码

 alert(parent.arr instanceof Array);//false
alert(parent.arr instanceof parent.window.Array);//true 这样才是true

另外  js5 新增判断方法  是 Array.isArray(value) 统一了判断方法

typeof 只适用于检测基本数据类型,引用类型 统一都是object 所以,没什么用处对于检测引用类型时候

    //js中一共六种数据类型
//5种基本类型 Undefined Null Boolean String Number
//一种复杂类型 Object //type of 共会返回六种结果
//undrfined-- 如果这个值未定义
//boolean-- 如果这个值是布尔值
//string-- 如果这个值字符串
//number-- 如果这个值是数字
//object-- 如果这个值是对象或者null(null 被看成是一个空对象的引用)
//function-- 如果这个值是函数 var str= 'aa';//typeof---string
var num= ;//typeof---number
var b= true;//typeof---boolean
var u;//typeof---undefined
//以上是基本类型
var func= function(){}//typeof---function
//以上是比较特殊的对象类型--函数类型
var n=null;//typeof---object
var o= new Object();//typeof---object
var arr= [,];//typeof---object
//以上是对象类型 //所以 typeof 只适合检测基本类型 和 函数

  

  # 严格判断方法:Object.prototype.toString.call([]); //"[object Array]"

总结:typeof 用于判断基本类型和function

   instanceof  用于单一环境下 对象类型(如果用基本类型调用此方法 始终返回false)

   isArray 可以跨环境判断

类型检测汇总!typeof 和 instanceof 和isArray的更多相关文章

  1. JavaScript类型检测汇总

        曾经我以为JavaScript中的类型检测只要使用 typeof 或 instanceof 就可以通通解决.后来我发现我是too young too naive啊!早说过JavaScript是 ...

  2. js类型判断:typeof与instanceof

    typeof用以获取一个变量或者表达式的类型,typeof一般只能返回如下几个结果: number,boolean,string,function(函数),object(NULL,数组,对象),und ...

  3. JS 类型检测

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

  4. JavaScript的三种类型检测typeof , instanceof , toString比较

    1.typeof typeof是js的一个操作符,在类型检测中,几乎没有任何用处. typeof 返回一个表达式的数据类型的字符串,返回结果为javascript中的基本数据类型,包括:number. ...

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

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

  6. JavaScript 类型判断 —— typeof 以及 instanceof 中的陷阱

    JavaScript中基本类型包含Undefined.Null.Boolean.Number.String以及Object引用类型.基本类型可以通过typeof来进行检测,对象类型可以通过instan ...

  7. JS做类型检测到底有几种方法?看完本文就知道了!

    JS有很多数据类型,对于不同数据类型的识别和相互转换也是面试中的一个常考点,本文主要讲的就是类型转换和类型检测. 数据类型 JS中的数据类型主要分为两大类:原始类型(值类型)和引用类型.常见的数据类型 ...

  8. js中typeof和instanceof

    对于typeof和instanceof,我们经常用来检测数据的类型.typeof可以检测Number.Boolean.String.Undefined类型,对于其他类型的数据都返回为object:而i ...

  9. 谈谈JavaScript类型检测

      javascript内置的类型检测机制并非完全可靠.比如typeof操作符,并不能准确的判断数据是哪个类型,比如:数组和对象就不能通过typeof来区分. typeof [] ==="o ...

随机推荐

  1. 性能优化工具 MVC Mini Profiler

    性能优化工具 MVC Mini Profiler   MVC MiniProfiler是Stack Overflow团队设计的一款对ASP.NET MVC.WebForm 以及WCF 的性能分析的小程 ...

  2. 关于PHP的十大误解 你中了几个?

    作为开发人员,你常常会在网上看到不使用XX的理由之类的新闻.而作为最受欢迎的开源服务器端脚本语言,PHP也难逃这样的命运.殊不知,金无足赤.人无完人,再流行的语言都会存在缺点,或者是误解,因此,有些开 ...

  3. C#.Net 如何动态加载与卸载程序集(.dll或者.exe)3---- 动态加载Assembly应用程序

    下载 supergraphfiles.exe 示例文件. 应用程序体系结构 在我专攻代码之前,我想谈谈我尝试做的事.您可能记得,SuperGraph 让您从函数列表中进行选择.我希望能够在具体的目录中 ...

  4. Smallest unused ID

    http://www.codewars.com/kata/smallest-unused-id Description: Hey awesome programmer! You've got much ...

  5. Counting sheep...

    Counting sheep... Description: Consider an array of sheep where some sheep may be missing from their ...

  6. E-BOM和M-BOM的区别

    简单一点,ENG BOM一般用于试产,正式BOM一般用于量产:ENG BOM是FOR RD设计用的.即TEMP档.并非正式区的.一般的电子零件类的企业都会用到ENG BOM.在EBS中,ENG BOM ...

  7. Asp.net调用百度搜索引擎

    ASP.NET 调用百度搜索引擎 百度搜索引擎提供了一段嵌入到页面中的代码 <form action="http://www.baidu.com/baidu" target= ...

  8. CodeForces Round #290 Div.2

    A. Fox And Snake 代码可能有点挫,但能够快速A掉就够了. #include <cstdio> int main() { //freopen("in.txt&quo ...

  9. UVa 1645 (递推) Count

    题意: 有多少个n个节点的有根树,满足每层节点的子节点个数相同,输出该数目除以1e9+7的余数. 分析: 这种题目就属于那种,看起来很高冷,读完题更高冷.想了N久想不出来,一搜题解,卧槽,这么sb的题 ...

  10. JqueryEasyUI 增加选项卡

    function addTab(subtitle,url){ if(!$('#tabs').tabs('exists',subtitle)){ $('#tabs').tabs('add',{ titl ...