浅谈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 相关文章推荐
懒就要懒到底——鼠标自动点击(含时间判断)
Feb 20 Javascript
js实现iframe动态调整高度的代码
Jan 06 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
Nov 22 Javascript
Node.js 异步编程之 Callback介绍(一)
Mar 30 Javascript
浅谈javascript的call()、apply()、bind()的用法
Feb 21 Javascript
浅谈javascript中关于日期和时间的基础知识
Jul 13 Javascript
详解Node.js如何开发命令行工具
Aug 14 Javascript
原生js实现打字动画游戏
Feb 04 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
Aug 28 Javascript
在vue中解决提示警告 for循环报错的方法
Sep 28 Javascript
微信小程序云函数添加数据到数据库的方法
Mar 04 Javascript
js加减乘除精确运算方法实例代码
Jan 17 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写的小东西
2006/12/06 PHP
PHP 中的批处理的实现
2007/06/14 PHP
php限制上传文件类型并保存上传文件的方法
2015/03/13 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
使用TextRange获取输入框中光标的位
2006/10/14 Javascript
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
2012/02/03 Javascript
JS动态增加删除UL节点LI及相关内容示例
2014/05/21 Javascript
基于jQuery的图片不完全按比例自动缩小
2014/07/11 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
2015/08/21 Javascript
JQuery对ASP.NET MVC数据进行更新删除
2016/07/13 Javascript
JS快速实现移动端拼图游戏
2016/09/05 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
利用prop-types第三方库对组件的props中的变量进行类型检测
2017/05/02 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
2017/05/22 Javascript
微信小程序自定义toast的实现代码
2018/11/16 Javascript
浅谈Vue项目骨架屏注入实践
2019/08/05 Javascript
JS/CSS实现字符串单词首字母大写功能
2019/09/03 Javascript
Python实现发送email的几种常用方法
2014/08/18 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
将matplotlib绘图嵌入pyqt的方法示例
2020/01/08 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
教育学专业实习生的自我鉴定
2013/11/26 职场文书
教师演讲稿大全
2014/05/16 职场文书
带香烟到学校抽的检讨书
2014/09/25 职场文书
2014教师年度思想工作总结
2014/11/10 职场文书
初三语文教学计划
2015/01/22 职场文书
任命书格式模板
2015/09/22 职场文书
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS
Netty分布式客户端接入流程初始化源码分析
2022/03/25 Java/Android