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改变Session的值(用ajax实现)
Dec 28 Javascript
Javascript 按位与赋值运算符 (&=)使用介绍
Feb 04 Javascript
JavaScript为事件句柄绑定监听函数实例详解
Dec 15 Javascript
JS动态增删表格行的方法
Mar 03 Javascript
js实现的简练高效拖拽功能示例
Dec 21 Javascript
js实现旋转木马效果
Mar 17 Javascript
Vue2递归组件实现树形菜单
Apr 10 Javascript
基于Node.js模板引擎教程-jade速学与实战1
Sep 17 Javascript
angularjs $http调用接口的方式详解
Aug 13 Javascript
微信小程序调用摄像头隐藏式拍照功能
Aug 22 Javascript
Vue.extend 编程式插入组件的实现
Nov 18 Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
Feb 14 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
PHP中的函数嵌套层数限制分析
2011/06/13 PHP
codeigniter数据库操作函数汇总
2014/06/12 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
nodejs事件的监听与触发的理解分析
2015/02/12 NodeJs
nodejs实现HTTPS发起POST请求
2015/04/23 NodeJs
javascript返回顶部的按钮实现方法
2016/01/09 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
2019/02/27 jQuery
JavaScript检测浏览器是否支持CSS变量代码实例
2020/04/03 Javascript
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
Python 读写文件和file对象的方法(推荐)
2016/09/12 Python
python 采集中文乱码问题的完美解决方法
2016/09/27 Python
Python编程实现数学运算求一元二次方程的实根算法示例
2017/04/02 Python
Python实现好友全头像的拼接实例(推荐)
2017/06/24 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
终端命令查看TensorFlow版本号及路径的方法
2018/06/13 Python
Python判断有效的数独算法示例
2019/02/23 Python
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
python批量修改xml属性的实现方式
2020/03/05 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
python元组拆包实现方法
2021/02/28 Python
家长对老师的评语
2014/04/18 职场文书
工程项目经理任命书
2014/06/05 职场文书
顶岗实习协议书
2015/01/29 职场文书
品质保证书格式
2015/02/28 职场文书
高三英语教学反思
2016/03/03 职场文书
浙江省杭州市平均工资标准是多少?
2019/07/09 职场文书
Java图书管理系统,课程设计必用(源码+文档)
2021/06/30 Java/Android
React Fragment介绍与使用详解
2021/11/11 Javascript