Javascript 数组的创建

数组的创建有三种方式:

  1. 字面量创建
  2. 构造函数方式创建
  3. 根据对象创建数组(一般不用)
//创建数组的三种方式
var arr = [];
var arr = new Array();
var arr = new Object([]);//一般不用

数组是将一组无序的数据以有序的方式进行排列。
数组是一个引用列表,列表的特点:有顺序、只有值、紧密、速度慢。
数组是依赖于对象创建的,它的索引值在用的时候会转成字符串。

字面量创建方式

var arr = [3,2,3,4];
//arr是数组 1是索引值(下标) arr[1]是元素(下标变量),arr[1]是一个变量
console.log(arr[0]);//3
//数组是依赖于对象创建的,它的索引值在用的时候会转成字符串。
console.log(arr["1"]);//2

//可以修改下标变量的结果
arr[1]=10;
console.log(arr[1]);//10

//给第4项添加了7
arr[4]=7;
console.log(arr);//[3,2,3,4,7]

//给第7项添加了9 数组的紧密性,如果中间空余,就会自动补充空元素
arr[7]=9;
console.log(arr);
//火狐下显示 [ 3, 2, 3, 4, undefined, undefined, undefined, 9 ]
//chrom下显示[3, 2, 3, 4, empty × 3, 9]

数组只有值的存储,只能遍历数组才能获取值是否存在

var a=[1,2,3,4,5];
for(var i=0;i<5;i++){
	console.log(arr[i]);
}

遍历内容较多,当添加删除元素时,因为数组的紧密性,这个数组就必须向后或者向前挪,速度变慢,尤其是在前面插入和删除。

var a =[1,2,3,4];
//当在第2位添加一个元素8时,第2位的2先往第3位挪动,此时第3位是有元素的,第3位再住第4位挪......

当插入 arr [ -1] =10 时,不会改变数组的长度

  • 数组长度:表示当前数组的索引下标的数量,或者是索引下标的最大值加1,当添加的不是索引数据(从0开始),就不会累计在长度中,而作为对象的 key 和 value 来增加内容。
var arr=[1,2,3,4,5];
arr[-1]=10;
console.log(arr);//打印出的结果如下图
arr[arr.length]=10;//在数组的尾部添加一个新元素
//每次添加元素后,长度会发生变化,length会变化的,因此下面这句不会修改数据的最后一个元素,而是添加了一个新元素。
arr[arr.length]=11;
//如果直接设置数组的长度,长度大于原来数组的长度时,添加空元素,让长度等于设置的长度
arr.length=10;
//如果长度比原来少一个,就会删除最尾部一个元素,以下两种写法相同
arr.length=arr.length-1;
arr.length--;
//length=0时,表示清空数组
arr.length=0;
//如果直接让数组等于空,会造成数组的引用地址发生变化,原来的数组会永远留在堆中,造成内存泄露
arr=[];
//数组的长度不能为负值
arr.length=-2;//报错
//如果给的不是数值,会隐式转换为数值,如果值是NaN,就会报错
arr.length=true;//相当于arr.length=1;

打印出的结果如下图:
在这里插入图片描述
优先设置数组的长度
数组内的元素类型要统一。

构造函数创建方式

var arr=new Array(1,2,3,4,5);//构造函数创建,构造函数实例化对象
var arr=Array(1,2,3,4,5);//字符串转数组类型
console.log(arr);

Array () 比 new Array () ,创建要慢。

  • 数组通过构造函数创建时,如果只有一个参数,并且参数为正整数,那么这个数就是数组的长度,而不作为数组的新元素。
  • 如果是数字,但不是正整数,如-1,0.4,都会报错。
  • 如果不是数字,则作为数组的第一个元素添加。
  • 如果是多个参数,则直接作为数组的元素添加进去。
var arr=new Array(5);
console.log(arr);//声明了一个长度为5的空数组
var arr = Array(5);
console.log(arr);//同上,声明了一个长度为5的空数组
var arr = new Array("4");
console.log(arr);//["4"]
var arr = new Array(3,4);
console.log(arr);//[3,4]

根据对象创建数组

var arr = new Object([]);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值