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. Qt之显示网络图片(可以改成升级模块)

    http://blog.csdn.net/u011012932/article/details/50773382

  2. Protected Functions 是理解OO的难点和关键

    Protected Functions 是理解OO的难点和关键 private和public函数都好理解,这里就不多说了,夹在中间的prortected却有许多精妙之处,说说我的几个疑问和看法:1. ...

  3. Android开发之技术文章索引

    Activity: 1.PreferenceActivity Fragment: 1.fragment中套用PagerSlidingTabStrip,切换底部时viewpager消失的解决 Widge ...

  4. It is indirectly referenced from required .class files

    配置eclipse的导入包,有些包引用的位置不正确

  5. 高性能PHP支持静态类型

    PHP+QB是一个可选的PHP虚拟机,它声称在性能上提供了数量级的提升.而负面影响就是它需要所有的内容都必须是静态类型,同时也对数组做了一些限制. 静态 类型声明 是通过PHPDoc语法的一个扩展添加 ...

  6. [scu 4423] Necklace

    4423: Necklace Description baihacker bought a necklace for his wife on their wedding anniversary. A ...

  7. 软件测试Web数据分析工具HttpWatch安装

    1.下载破解版:http://www.pc6.com/softview/SoftView_13845.html 2.安装时引入授权文件并汉化: 3.打开IE9,菜单:管理加载项->工具栏和扩展, ...

  8. LeetCode Excel Sheet Column Title (输出excel表的列名称)

    题意:给一个数字n,输出excel表的列名称. 思路:其实观察可知道,是个26进制的标记而已.那就模拟一下,每次计算一位时就先左移1位,再进行计算. class Solution { public: ...

  9. 【JSP】让HTML和JSP页面不缓存从Web服务器上重新获取页面

    用户退出后,如果点击浏览器上的后退按钮,Web应用将不能正确保护受保护的页面——在Session销毁后(用户退出)受保护的JSP页重新在浏览器中显示出来. 然而,如果用户点击返回页面上的任何链接,We ...

  10. C# 实例化顺序

    static class Program { static void Main() { BaseB baseb = new BaseB(); baseb.MyFun(); Console.ReadKe ...