浅谈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判断机器是否联网的2种方法
Aug 09 Javascript
浅析JavaScript中的隐式类型转换
Dec 05 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
Mar 16 Javascript
Javascript基于AJAX回调函数传递参数实例分析
Dec 15 Javascript
JS获取url参数、主域名的方法实例分析
Aug 03 Javascript
AngularJS实现的回到顶部指令功能实例
May 17 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
May 19 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 jQuery
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
Oct 25 Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
Nov 10 Javascript
性能优化篇之Webpack构建速度优化的建议
Apr 03 Javascript
微信小程序如何使用canvas二维码保存至手机相册
Jul 15 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获取浏览器信息类和客户端地理位置的2个方法
2014/04/24 PHP
PHP延迟静态绑定示例分享
2014/06/22 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
nodejs下打包模块archiver详解
2014/12/03 NodeJs
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
nodejs开发微博实例
2015/03/25 NodeJs
纯js代码制作的网页时钟特效【附实例】
2016/03/30 Javascript
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
JavaScript面试开发常用的知识点总结
2016/08/08 Javascript
js实现定时进度条完成后切换图片
2017/01/04 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
2017/02/20 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
Python简单计算文件夹大小的方法
2015/07/14 Python
Python基于pillow判断图片完整性的方法
2016/09/18 Python
python re正则匹配网页中图片url地址的方法
2018/12/20 Python
python3实现elasticsearch批量更新数据
2019/12/03 Python
python集成开发环境配置(pycharm)
2020/02/14 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
使用python实现名片管理系统
2020/06/18 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
Urban Outfitters英国官网:美国平价服饰品牌
2016/11/25 全球购物
电信专业应届生自荐信
2013/09/28 职场文书
《最大的“书”》教学反思
2014/02/14 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
党风廉政建设个人总结
2015/03/06 职场文书
地道战观后感2000字
2015/06/04 职场文书
python利用while求100内的整数和方式
2021/11/07 Python
Go并发4种方法简明讲解
2022/04/06 Golang