Array.isArray()

用来检验是不是数组

        var a = [1,2,3]
console.log(typeof a); // object
console.log(Array.isArray(a)); // true

可以看出 typeof 并不能检验数组,虽然 Array.isArray() 可以检验数组,但是 IE8 都不兼容

        var a = [1,2,3]
alert(Object.prototype.toString.call(a)) // [object Array]

这个方法可以兼容IE8 以及以下的浏览器

typeof

        function foo(){}
console.log(typeof foo); // function
console.log(typeof null); // object
console.log(typeof undefined); // undefined
console.log(typeof 'a'); // string
console.log(typeof 1); // number

这里 null 是基本类型,不是一个对象,这个是 JS 的一个 bug。还有一个值得注意的地方:

console.log(undefined == null);  // true

因为在 JS 中 undefined 是派生自 null 的

instanceof

        function foo(){}
var a = new foo()
console.log(a instanceof foo); // true

instanceof 是根绝原型链来查找的,如果函数 foo 的显示原型对象在 a 对象的隐式原型链上,则返回 true,否则返回 false

绿色的就是对象 a 的原型链

JS isArray、typeof、instanceof的更多相关文章

  1. 原生JS:delete、in、typeof、instanceof、void详解

    delete.in.typeof.instanceof.void详解 本文参考MDN做的详细整理,方便大家参考[MDN](https://developer.mozilla.org/zh-CN/doc ...

  2. 浅谈JS中的typeof和instanceof的区别

    JS中的typeof和instanceof常用来判断一个变量是否为空,或者是什么类型. typeof typeof运算符返回一个用来表示表达式的数据类型的字符串. typeof一般返回以下几个字符串: ...

  3. boost--BOOST_AUTO、typeof、result_of

    1.BOOST_AUTO BOOST_AUTO的功能类似于auto和any,可以用来定义任意类型数据,且可以在编译时自动推导出表达式的类型.BOOST_AUTO属于boost中的typeof库,使用需 ...

  4. indexOf、instanceOf、typeOf、valueOf详解

    1.indexOf() 该方法用来返回某个指定的字符串值在字符串中首次出现的位置. 语法:indexOf(searchvalue,fromindex);两个参数,参数一表示查询的字符串值,参数二可选表 ...

  5. this 、typeof、false、parseInt()、this、arguments、Array和object判断

    typeof typeof (undefined) 不会报错 undefined object Number boolean function String 返回值为字符串类型 false .fals ...

  6. null、undefined、typeof、instanceof

    目录 概述 null undefined typeof instanceof 概述 JavaScript(ECMAScript标准)里共有5种基本类型: undefined, null, Boolea ...

  7. js中的typeof和instanceof和===

    typeof: 用于判断number/string/boolean/underfined类型/function 不能判断:null和object ,不能区分object和Array instanceo ...

  8. 挑战:万能的slash! 判断js中“/”是正则、除号、注释?

    很久以前在其它地方就探讨和关注过这个问题,但都没有满意的解答. 看了zjfeihu 的帖子: <前端代码加亮插件(html,jss,css),支持即时加亮,运行代码>,再次提出这个比较经典 ...

  9. (四)JavaScript之[break和continue]与[typeof、null、undefined]

    7].break和continue /** * JavaScript 的break和continue语句 * break 跳出switch()语句 * break 用于跳出循环 * continue ...

随机推荐

  1. Kure讲HTML_div标签和table标签

    为什么要把这两个标签放在一起讲? 个人认为div标签可以算是一个万能标签,它可以通过CSS(层叠样式表)来模仿表格的形式来生成一个表格.那么很多人可能会疑惑那在开发的时候,到底是用div+css的形式 ...

  2. pta5-9 Huffman Codes (30分)

    5-9 Huffman Codes   (30分) In 1953, David A. Huffman published his paper "A Method for the Const ...

  3. 【frame】找上一层

    第一种:window.parent第二种:window.top 貌似两种都行 然后找上一层iframe里面的js函数可以这么写: window.parent.functionName(param1, ...

  4. 自定义input文件上传 file的提示文字及样式

    简单记录一下 效果图: 代码: <input class="aload" type='button' value='上传附件' onClick='javascript:$(& ...

  5. spring注入bean的五种方式

    1.属性注入 2.构造方法注入 3.静态工厂注入 package com.voole.factorybeans; import com.voole.beans.TestBean; public cla ...

  6. winform文件拖入

    //view.AllowDrop = true; ---------------------------------------- private void view_DragEnter(DragEv ...

  7. Windows server 2008 sp2 X64安装sharepoint2007出现兼容性问题无法安装 解决办法

    当你兴冲冲配置好了AD IIS .Net3.0.安装好了SQL2005,打完了sp3补丁,正准备点击sharepoint2007setup.exe安装的时候. 电脑却莫名奇妙提示了一个无法兼容的错误, ...

  8. AWS ELB Sticky Session有问题?别忘了AWSELB cookie

    我们的产品中有两个Module,分别部署在独立的Linux机器上,Module 1需要向Module 2发起Http请求来获得服务.由于Module 2有多台,因此我们会在Module 2前部署一台负 ...

  9. Struts2_带参数的结果集

    页面请求: <a href="user/user?type=1">传参数</a> action: public Integer type; public S ...

  10. Java问题定位之Java线程堆栈分析

    采用Java开发的大型应用系统越来越大,越来越复杂,很多系统集成在一起,整个系统看起来像个黑盒子.系统运行遭遇问题(系统停止响应,运行越来越慢,或者性能低下,甚至系统宕掉),如何速度命中问题的根本原因 ...