JavaScript判断变量是否为数组的方法(Array)


Posted in Javascript onFebruary 24, 2016

 今天小编给大家整理些关于javascript判断变量是否是数组(Array)的相关知识,主要通过以下四点给大家展开话题,具体内容如下所示:

1. typeof真的那么厉害吗??

//首先看代码
var ary = [1,23,4];
console.log(typeof ary); //输出结果是Object

上面的办法并不能实时的检测出是否是数组,只能判断其类型,所以说typeof判断基本类型数据还是挺好的,但是不能准确测试出是否是数组(typeof的具体用法以后提及,现在回归正题)

2.instanceof 判断

var ary = [1,23,4];
console.log(ary instanceof Array)//true;

从输出的效果来看,还是挺令人满意的,能准确的检测出数据类型是否是数组,不要高兴的太早,大家先想想这个的缺点,我们接着说第三种方法

3.原型链方法

var ary = [1,23,4];
console.log(ary.__proto__.constructor==Array);//true
console.log(ary.constructor==Array)//true 这两段代码是一样的

这个办法开起来好高大上哦~~,利用了原型链的方法,但是但是,这个是有兼容的哦,在IE早期版本里面__proto__是没有定义的哦~而且,这个仍然有局限性,我们现在就来总结一下第2种方法和第3种方法局限性

总结一下第2种方法和第3种方法局限性

instanceof 和constructor 判断的变量,必须在当前页面声明的,比如,一个页面(父页面)有一个框架,框架中引用了一个页面(子页面),在子页面中声明了一个ary,并将其赋值给父页面的一个变量,这时判断该变量,Array == object.constructor;会返回false;

原因:

1、array属于引用型数据,在传递过程中,仅仅是引用地址的传递。

2、每个页面的Array原生对象所引用的地址是不一样的,在子页面声明的array,所对应的构造函数,是子页面的Array对象;父页面来进行判断,使用的Array并不等于子页面的Array;切记,不然很难跟踪问题!

4.通用的方法

var ary = [1,23,4];
function isArray(o){
return Object.prototype.toString.call(o)=='[object Array]';
}
console.log(isArray(ary));

具体Object.prototype.toString 的用法,请参照 Object.prototype.toString的用法

好了关于JavaScript判断变量是否为数组的方法(Array)就给大家介绍这么多,今天主要给大家总结了这四种,本文写的不好还请各位大侠多多指教,谢谢!

Javascript 相关文章推荐
jQuery 行背景颜色的交替显示(隔行变色)实现代码
Dec 13 Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
Jun 25 Javascript
juqery 学习之三 选择器 子元素与表单
Nov 25 Javascript
jQuery Tools tab使用介绍
Jul 14 Javascript
基于bootstrap3和jquery的分页插件
Jul 31 Javascript
javascript中undefined与null的区别
Aug 16 Javascript
Bootstrap对话框使用实例讲解
Sep 24 Javascript
vue登录路由验证的实现
Dec 13 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
Apr 30 Javascript
JavaScript进阶(三)闭包原理与用法详解
May 09 Javascript
Element Backtop回到顶部的具体使用
Jul 27 Javascript
JS canvas实现画板和签字板功能
Feb 23 Javascript
浅析jQuery Ajax请求参数和返回数据的处理
Feb 24 #Javascript
jQuery+formdata实现上传进度特效遇到的问题
Feb 24 #Javascript
JQuery EasyUI的使用
Feb 24 #Javascript
使用jQuery监听DOM元素大小变化
Feb 24 #Javascript
JavaScript中的闭包
Feb 24 #Javascript
jQuery中判断对象是否存在的方法汇总
Feb 24 #Javascript
jquery中键盘事件小结
Feb 24 #Javascript
You might like
php中define用法实例
2015/07/30 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
php提交表单时保留多个空格及换行的文本样式的方法
2017/06/20 PHP
如何在Web页面上直接打开、编辑、创建Office文档
2007/03/12 Javascript
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
jquery实现两边飘浮可关闭的对联广告
2015/11/27 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
vue中的watch监听数据变化及watch中各属性的详解
2018/09/11 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
javascript实现留言板功能
2020/02/08 Javascript
angular组件间通讯的实现方法示例
2020/05/07 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
python和flask中返回JSON数据的方法
2018/03/26 Python
Python简单定义与使用二叉树示例
2018/05/11 Python
Python面向对象之继承和组合用法实例分析
2018/08/27 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
python Tkinter的图片刷新实例
2019/06/14 Python
python中pyplot基础图标函数整理
2020/11/10 Python
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
美国益智玩具购物网站:Fat Brain Toys
2017/11/03 全球购物
英国最大最好的无人机商店:Drones Direct
2019/07/12 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
护士自我鉴定范文
2013/10/06 职场文书
新任教师自我鉴定
2014/02/24 职场文书
五年级作文之成长
2019/09/16 职场文书
Python OpenCV实现图像模板匹配详解
2022/04/07 Python