《JavaScript语言精粹》--第6章:数组

本文深入探讨了JavaScript数组的特性,包括数组的定义、长度的动态调整、元素的删除及数组的遍历等关键操作,并提供了实用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
	JS没有像其他语言数组一样的数据结构,它提供了一种拥有一些类数组特性的对象
	数组字面量:
		JS允许数组包含任意混合类型的值
*/
var someArray = [
	1,
		"alpha",
	true, {
		name: "obj"
	},
	function() {
		console.log("function");
	}
];
console.log(someArray);
//输出:
//[1, "alpha", true, Object, function]

//----------------------------------------------------------------------------------------

/*
	长度:
		每个数组都有一个length属性,如果用大于或等于当前length的数字作为下表来存储一个元素,那么length值将会被增大以容纳新元素,不会发生数组越界错误
		可以直接设置length的值,设置更大的length不会给数组分配更多的空间,而吧length设小将导致所有下标大于等于新length的属性将被删除
*/

var names = ["Tom", "Jerry", "Edison", "Howard", "Kobe"];
console.log(names);
//输出:
//["Tom", "Jerry", "Edison", "Howard", "Kobe"] 
names.length = 7;
console.log(names);
//输出:
//["Tom", "Jerry", "Edison", "Howard", "Kobe"] 
names.length = 3;
console.log(names[3]);
console.log(names);
//输出:
//undefined
//["Tom", "Jerry", "Edison"]

//----------------------------------------------------------------------------------------

/*
	删除:
		delete运算符可以用来从数组中移除元素,但不幸的是那样会在数组中留下一个空洞
		JS中有个splice方法,可以删除一些元素并将它们替换为其他元素
			第一个参数时数组中的一个序号
			第二个参数时要删除的元素个数
*/

var array4Delete = ["Tom", "Jerry", "Edison", "Howard", "Kobe"];
array4Delete.splice(2, 1);
console.log(array4Delete);
//输出:
//["Tom", "Jerry", "Howard", "Kobe"] 

//----------------------------------------------------------------------------------------

/*
	枚举:
		for in语句可以用来遍历一个数组的所有属性,但无法保证属性的顺序,而且可能会从原型链中获得属性
*/

//----------------------------------------------------------------------------------------

/*
	容易混淆的地方:
		当属性名是小而连续的整数时,使用数组,否则使用对象
		typeof运算符判定数组为'object'
			应该使用如下方法进行判定:Object.prototype.toString.apply(value) === '[Object Array]'
*/
console.log(typeof []);
//输出:
//object
console.log(Object.prototype.toString.apply([]) === '[object Array]');
console.log(Object.prototype.toString.apply({}) === '[object Array]');
//输出:
//true
//false

//----------------------------------------------------------------------------------------

/*
	指定初始值:
		当访问一个不存在的元素,得到的值为undefined

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值