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 获取浏览器版本以此来调整CSS的样式
Jun 03 Javascript
谷歌浏览器调试JavaScript小技巧
Dec 29 Javascript
js库Modernizr的介绍和使用
May 07 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
Aug 25 Javascript
javascript 用函数实现继承详解
May 28 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
Nov 27 Javascript
解决ng-repeat产生的ng-model中取不到值的问题
Oct 02 Javascript
15分钟学会vue项目改造成SSR(小白教程)
Dec 17 Javascript
H5实现手机拍照和选择上传功能
Dec 18 Javascript
vue实现户籍管理系统
May 29 Javascript
vue props default Array或是Object的正确写法说明
Jul 30 Javascript
nuxt静态部署打包相对路径操作
Nov 06 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
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
php下实现农历日历的代码
2007/03/07 PHP
php adodb连接mssql解决乱码问题
2009/06/12 PHP
基于PHP Web开发MVC框架的Smarty使用说明
2013/04/19 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
Thinkphp整合阿里云OSS图片上传实例代码
2019/04/28 PHP
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
基于javascript 闭包基础分享
2013/07/10 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
2015/03/25 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
前端MVVM框架解析之双向绑定
2018/01/24 Javascript
微信小程序实现多选功能
2018/11/04 Javascript
Vue中使用canvas方法总结
2019/02/12 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
2020/05/27 Javascript
python中随机函数random用法实例
2015/04/30 Python
使用wxPython获取系统剪贴板中的数据的教程
2015/05/06 Python
python基础之包的导入和__init__.py的介绍
2018/01/08 Python
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
python自定义时钟类、定时任务类
2021/02/22 Python
python绘制彩虹图
2019/12/16 Python
python中的 zip函数详解及用法举例
2020/02/16 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
快餐公司创业计划书
2014/04/29 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python
MySQL创建管理RANGE分区
2022/04/13 MySQL
Redis特殊数据类型bitmap位图
2022/06/01 Redis