浅谈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 对象的定义方法
Jan 10 Javascript
js的表单操作 简单计算器
Dec 29 Javascript
javascript中的if语句使用介绍
Nov 20 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
Jun 30 Javascript
javascript制作的简单注册模块表单验证
Apr 13 Javascript
javascript基础知识分享之类与函数化
Feb 13 Javascript
Bootstrap中data-target 到底是什么
Feb 14 Javascript
深入解析vue 源码目录及构建过程分析
Apr 24 Javascript
Vue 实现前端权限控制的示例代码
Jul 09 Javascript
详解微信小程序自定义组件的实现及数据交互
Jul 22 Javascript
vue 实现模糊检索并根据其他字符的首字母顺序排列
Sep 19 Javascript
vue实现的多页面项目如何优化打包的步骤详解
Jul 19 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
深入分析php之面向对象
2013/05/15 PHP
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
老生常谈PHP位运算的用途
2017/03/12 PHP
yii插入数据库防并发的简单代码
2017/05/27 PHP
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
jQuery弹出层插件popShow用法示例
2017/01/23 Javascript
bootstrap table单元格新增行并编辑
2017/05/19 Javascript
jQuery实现的简单无刷新评论功能示例
2017/11/08 jQuery
vue中axios的封装问题(简易版拦截,get,post)
2018/06/15 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
小程序表单认证布局及验证详解
2020/06/19 Javascript
如何在Vue项目中添加接口监听遮罩
2021/01/25 Vue.js
[01:55]《走出家门看比赛》——DOTA2 2015国际邀请赛同城线下观战
2015/07/18 DOTA
[02:36]DOTA2上海特锦赛 回忆电竞生涯的重要瞬间
2016/03/25 DOTA
[46:38]完美世界DOTA2联赛PWL S2 Magma vs PXG 第三场 11.28
2020/12/02 DOTA
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
Pycharm远程调试openstack的方法
2017/11/21 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
详解django中使用定时任务的方法
2018/09/27 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
Python类中的魔法方法之 __slots__原理解析
2019/08/26 Python
wxPython+Matplotlib绘制折线图表
2019/11/19 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
css3 线性渐变和径向渐变示例附图
2014/04/08 HTML / CSS
给领导的检讨书
2014/02/16 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
村党支部换届选举方案
2014/05/02 职场文书
三月雷锋月活动总结
2014/07/03 职场文书
2019新学期家长会工作计划
2019/08/21 职场文书
Python中22个万用公式的小结
2021/07/21 Python
简单聊一聊SQL注入及防止SQL注入
2022/03/23 MySQL
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers
python实现简单的三子棋游戏
2022/04/28 Python