浅谈Javascript数组(推荐)


Posted in Javascript onMay 17, 2016

在程序语言中数组的重要性不言而喻,JavaScript中数组也是最常使用的对象之一,数组是值的有序集合,由于弱类型的原因,JavaScript中数组十分灵活、强大,不像是Java等强类型高级语言数组只能存放同一类型或其子类型元素,JavaScript在同一个数组中可以存放多种类型的元素,而且是长度也是可以动态调整的,可以随着数据增加或减少自动对数组长度做更改。

首先,大概说说数组的基本用法。

 数组,即Array类型,是开发中最常用的类型之一,javascript中的数组和其他语言最大的区别就是每一项可以保存任何类型的数据,而且数组的大小是可以动态调整的,有点绕?看看代码吧

 1.数组的创建:

var arr=new Array(20);
var arr1=["小伞",1,true,undefined,[2,"王"],""]

第一行用数组构造法创建了一个length值为20的数组,第二行用数组字面量表示法创建了一个多种数据类型并存的数组。

第一行的方法有点小坑,括号里指定的是数组的长度,而不是数组第一个元素是20 ,要想创建有一个元素是20的这么一个数组,还是用字面量法创建吧。

还有一个小坑,看代码

var arr=[1,2,];
var arr1=[,,,,,]

第一行这句会在IE8以及之前版本中创建一个值分别为1,2,undefined的数组,其他浏览器会产生一个两项分别是1,2的数组

第二行同样的可能会在不同浏览器上包含5项或者6项。(IE9以上修复了这个问题,但还是不推荐这种写法)

2.数组元素的基本操作

js的数组非常的灵活,拥有很多数组元素操作的方法,但也有一些小坑,比如:

var arr=[];
arr[0]=1;arr[1]=2;arr.push(3); //arr=[1,2,3]arr[arr.length]=4; //arr=[1,2,3,4]arr.unshift(0); //arr=[0,1,2,3,4];delect arr[2]; //arr=[0,1,undefined,3,4]arr[0]=undefined //arr=[undefined,1,undefined,3,4]

push()方法会给数组最后边添加一个元素,得到的值可以看注释,^_^

也可以直接手动在数组下标拓展以为,如第三行,其实就相当于push(4);
那如果想在数组元素最前边添加呢,别急,有unshift()方法。

与此对应的有删除元素的pop()方法和shift()方法,分别和push(),unshift()对应,就不再赘述了。

delect 运算符对数组的操作不会删除掉数组的元素,可以说是用undefined来占个位子,和直接赋值是一样的。

 3.稀疏数组

稀疏数组是指数组的下标并不是从0开始,一般数组的长度要比元素的个数要多:

var arr1=[undefined];
var arr2=new Array(1);
0 in arr1; //true
0 in arr2; //false
var arr3=new Array(100);
arr3[99]="赋值";
99 in arr3; //true
98 in arr3; //false

arr1中是因为数组第1列是有值的,虽然是undefined,arr2只是指定了数组长度,第1列还是没有值,所以用in语句会返回false。arr3中给第第100个元素赋值后检测是有值的,对其他列的key是没有影响的,所以还是返回了false。

以上所述是小编给大家介绍的Javascript数组的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 鼠标滚轮事件
Apr 09 Javascript
一些常用弹出窗口/拖放/异步文件上传等实用代码
Jan 06 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
Oct 23 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
May 14 Javascript
node.js中的http.response.removeHeader方法使用说明
Dec 14 Javascript
js实现交换运动效果的方法
Apr 10 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
Aug 24 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
Dec 18 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
Jul 24 Javascript
解决layer弹层遮罩挡住窗体的问题
Aug 17 Javascript
微信小程序生成分享海报方法(附带二维码生成)
Mar 29 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
May 18 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
May 17 #Javascript
javascript css红色经典选项卡效果实现代码
May 17 #Javascript
JS获取IMG图片高宽的简单实例
May 17 #Javascript
简单的分页代码js实现
May 17 #Javascript
Js获取图片原始宽高的实现代码
May 17 #Javascript
创建一个类Person的简单实例
May 17 #Javascript
jQuery Mobile操作HTML5的常用函数总结
May 17 #Javascript
You might like
Function eregi is deprecated (解决方法)
2013/06/21 PHP
php将session放入memcached的设置方法
2014/02/14 PHP
php微信公众平台示例代码分析(二)
2016/12/06 PHP
POST一个JSON格式的数据给Restful服务实例详解
2017/04/07 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
二行代码解决全部网页木马
2008/03/28 Javascript
JQuery模板插件 jquery.tmpl 动态ajax扩展
2011/11/10 Javascript
JavaScript三元运算符的多种使用技巧
2015/04/16 Javascript
Bootstrap入门书籍之(一)排版
2016/02/17 Javascript
jQuery判断浏览器并动态调整select宽度的方法
2016/03/02 Javascript
原生javascript实现的ajax异步封装功能示例
2016/11/03 Javascript
jQuery使用方法
2017/02/04 Javascript
javascript定时器取消定时器及优化方法
2017/07/08 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
vuex的使用及持久化state的方式详解
2018/01/23 Javascript
详解Vue源码学习之双向绑定
2019/04/10 Javascript
[03:04]DOTA2超级联赛专访ZSMJ “莫名其妙”的逆袭
2013/05/23 DOTA
[05:43]VG.R战队教练Mikasa专访:为目标从未停止战斗
2016/08/02 DOTA
[00:12]DAC2018 Miracle-站上中单舞台,他能否再写奇迹?
2018/04/06 DOTA
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
Python+pyplot绘制带文本标注的柱状图方法
2019/07/08 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
瑞士国际航空官网:SWISS
2016/07/21 全球购物
全球独特生活方式产品和礼品购物网站:AHAlife
2018/09/18 全球购物
物流管理毕业生自荐信
2013/10/24 职场文书
优秀的导游求职信范文
2014/04/06 职场文书
会计试用期自我评价
2014/09/19 职场文书
2015年元旦联欢晚会活动总结
2014/11/28 职场文书
2014年体育教学工作总结
2014/12/09 职场文书
2015年校本培训工作总结
2015/07/24 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书
班主任工作总结范文
2015/08/13 职场文书
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
2021/06/03 Python