JavaScript数组(1):定义数组、使用数组

定义数组

构建数组

示例1 当调用Array构造函数时,没有传递参数,可以创建一个空数组

var a=new Array()

示例2 当调用Array构造函数时,明确指定数组元素的值,可以创建一个实数组

var a=new Array(1,2,"string",[1,2],{x:1,y:2})

在这种形式中,构造函数带有一个参数列表,每个参数指定一个元素的值,值的类型是任意的

示例3 给Array构造函数传递一个数值参数,该数值定义了数组的长度,即定义数组中包含的元素的个数,每个元素的值预定义为undefined

var a=new Array(5)

数组直接量

使用直接量是定义数组的快捷方法,能够提高数组初始化运行效率。在没有特殊要求情况下使用直接量定义数组

var a=[];      //空的数组直接量
var a=[.,true,"string",[1,2],{x:1,y:2}];  //包含具体元素的数组直接量

使用数组

例:使用中括号运算符存取数组元素的值

var a = []; //定义一个空数组
var a[0] = 1;
var a[2] = 2;
console.log(a[0], a[1], a[2]) //输出1,undefined、2

注:
1、数组长度是弹性的,可以在操作中随时扩展数组的长度。对于未赋值的数组元素默认为undefined
2、数组下标的值必须是大于等于0,小于2的32次方-1的整数。如果下标值太大,或为负数、浮点数、布尔值、对象及其他值,JavaScript会自动把它转换为一个字符串,从而生成与字符串相关联的关联数组,即作为对象属性的名字,而不是数组下标

var a = []
a["name"] = "小明"
a["age"] = 13
console.log(a["name"], a.name)

下标是字符串时一定要加引号

数组长度

示例1

var a = [];
a[0] = 0;
a[5] = 5;
for (var i in a) {
	console.log(i)
}

注:
1、JavaScript在初始化数组时,只有那些真正存储在数组中的元素才能够被分配到内存中。上面的代码中只给下标为0和5的元素分配内存
2、遍历时只能遍历出存在的元素,即只能输出0和5;但是可以通过括号的形式读取其它不存在的元素,返回值为undefined
3、JavaScript中数组中的元素值,以及元素的个数都是动态的,且元素下标是否为连续值都不重要

示例2

var a = [];
a[0] = 0;
a[5] = 5;
console.log("a数组长度:", a.length);   //6
var b = [];
b['x'] = 1;
b['y'] = 2;
console.log("b数组长度:", b.length);   //0

注:
1、length属性值不是数组元素的实际个数,而是当前数组的最大元素个数,即数组最大下标值加1
2、如果数组的下标不是整数,即给数组是关联数组时,使用length属性只会返回0

示例3

var a = [1, 2, 3, 4]
console.log(a.length) //4
a[4] = 5
console.log(a.length) //5
a.length = 7
console.log(a[6]) //返回undefined,说明该元素还没有被赋值
a.length = 2
console.log(a[2])  //返回undefined,说明该元素的值以及丢失

注:
1、数组的length属性是一个动态值,当数组添加了新元素后,它的值会自动更新
2、作为动态值,数组的length属性可以被更新。如果length属性被设置了一个比当前length值小的值,则数组将会被截断,新长度之外的元素值都会被丢失;如果length属性被设置了一个比当前length值大的值,那么新的未定义的元素就会被添加到数组末尾,以使得数组增长到新指定的长度,其默认值未undefined

对象与数组

示例 对象与数组是两者不同类型的引用型数据。对象是一种包含已命名的值的集合类型,而数组则是一种包含已编码的值的集合类型。由于对象的数据存储形式很像数组,因此也被称为关联数组

//对象
var o={x:1,y:true}
//数组
var a=[1,true]

示例 对对象进行取值时,可以使用点运算符也可以使用中括号。使用点运算符存取属性时,属性名是标识符;而使用中括号运算符存取属性时,属性名是字符串

console.log(o.x, o["x"])

示例 数组实际上为对象类型,其返回值是字符串“Object”。判断一个变量是否是数组,可以使用isArray方法或者判断变量的构造器是否是Array

var a = [1, 2, 3]
console.log((typeof a) == 'object') //true
console.log(Array.isArray(a)) //true
console.log(a.constructor == Array) //true

多维数组
JavaScript不支持多维数组,但是可以通过数组嵌套的形式定义多维数组

var a = [
	[1, 2, 3],
	[4, 5, 6],
	[7, 8, 9]
]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无知的小菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值