JavaScript中的类数组对象介绍


Posted in Javascript onDecember 30, 2014

JavaScript中,数组是一个特殊的对象,其property名为正整数,且其length属性会随着数组成员的增减而发生变化,同时又从Array构造函数中继承了一些用于进行数组操作的方法。而对于一个普通的对象来说,如果它的所有property名均为正整数,同时也有相应的length属性,那么虽然该对象并不是由Array构造函数所创建的,它依然呈现出数组的行为,在这种情况下,这些对象被称为“类数组对象”。以下是一个简单的类数组对象:

var o = {0:42, 1:52, 2:63, length:3}

console.log(o);

与普通对象不同的是,类数组对象拥有一个特性:可以在类数组对象上应用数组的操作方法。比如,在ECMAScript 5标准中,可以用以下方法来将上面的对象o合并成字符串:
console.log(Array.prototype.join.call(o));//"42,52,63"

也可以在类数组对象上使用slice()方法获取子数组:
console.log(Array.prototype.slice.call(o, 1, 2));//[52]

在浏览器环境中,document.getElementsByTagName()语句返回的就是一个类数组对象。在function调用中,function代码内的arguments变量(保存传入的参数)也是一个类数组对象。

在ECMAScript 5标准中,字符串string就是一个只读的类数组对象:

var s = "History";

console.log(s[3]);//t

console.log(Array.prototype.join.call(s, " "));//H i s t o r y
Javascript 相关文章推荐
js获取url参数值的两种方式
Sep 10 Javascript
12种不宜使用的Javascript语法整理
Nov 04 Javascript
jquery和css3实现的炫酷时尚的菜单导航
Sep 01 Javascript
avalonjs实现仿微博的图片拖动特效
May 06 Javascript
一看就懂:jsonp详解
Jun 01 Javascript
js实现圆盘记速表
Aug 03 Javascript
深入理解JQuery循环绑定事件
Jun 02 Javascript
javascript数组常用方法汇总
Sep 10 Javascript
label+input实现按钮开关切换效果的实例
Aug 16 Javascript
js判断数组是否包含某个字符串变量的实例
Nov 24 Javascript
vuex 使用文档小结篇
Jan 11 Javascript
vue-next/runtime-core 源码阅读指南详解
Oct 25 Javascript
JavaScript中的方法调用详细介绍
Dec 30 #Javascript
JavaScript中的闭包(Closure)详细介绍
Dec 30 #Javascript
JavaScript中的类(Class)详细介绍
Dec 30 #Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
Dec 29 #Javascript
jQuery实现ichat在线客服插件
Dec 29 #Javascript
jQuery中用dom操作替代正则表达式
Dec 29 #Javascript
jQuery中:animated选择器用法实例
Dec 29 #Javascript
You might like
数据库相关问题
2006/10/09 PHP
PHP实现清除MySQL死连接的方法
2016/07/23 PHP
php之header的不同用法总结(实例讲解)
2017/11/28 PHP
laravel框架的安装与路由实例分析
2019/10/11 PHP
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
javascript 兼容鼠标滚轮事件
2009/04/07 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
JavaScript 原型链学习总结
2010/10/29 Javascript
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
详细讲解vue2+vuex+axios
2017/05/27 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
详解Vue底部导航栏组件
2019/05/02 Javascript
详解vue中使用protobuf踩坑记
2019/05/07 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
2019/07/06 Javascript
[02:42]岂曰无衣,与子同袍!DOTA2致敬每一位守护人
2020/02/17 DOTA
深入理解python中的闭包和装饰器
2016/06/12 Python
用Python解决计数原理问题的方法
2016/08/04 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
cProfile Python性能分析工具使用详解
2019/07/22 Python
Python Opencv提取图片中某种颜色组成的图形的方法
2019/09/19 Python
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
Matplotlib绘制雷达图和三维图的示例代码
2020/01/07 Python
Pyecharts地图显示不完成问题解决方案
2020/05/11 Python
HTML5触摸事件演化tap事件介绍
2016/03/25 HTML / CSS
详解如何解决canvas图片getImageData,toDataURL跨域问题
2018/09/17 HTML / CSS
Topshop法国官网:英国快速时尚品牌
2018/04/08 全球购物
企业出纳岗位职责
2014/03/12 职场文书
应聘编辑自荐信范文
2014/03/12 职场文书
民政局个人整改措施
2014/09/24 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
民主评议教师党员自我评价
2015/03/04 职场文书
如何写好开幕词?
2019/06/24 职场文书
Promise面试题详解之控制并发
2021/05/14 面试题