<SCRIPT LANGUAGE="JavaScript">
// Array用法
var cars = new Array();// 另外一种写法
document.write("初始化cars大小"+cars.length+"</br>");
cars = new Array(20);
document.write("初始化cars大小"+cars.length+"</br>");
for(var i = 0;i<cars.length;i++){
// document.write("cars"+i+"的值为"+cars[i]+"</br>");// 返回了Undefined
}
document.write("cars"+(i+10)+"的值为"+cars[i+10]+"</br>");
// 虽然car[30] 已经超过了数组的大小,但是还是返回了Undefined,
document.write("初始化cars大小"+cars.length+"</br>");
// 访问超过数组,数组的大小依然不变
cars = new Array("宝马");
document.write("cars此时的大小为"+cars.length+"</br>");
cars = new Array("BMW","AD","LBJN","LSLS");
document.write("cars此时的大小为"+cars.length+"</br>");
var cars = Array(); // 不规范,不推荐
var cars = Array("John"); // 不规范,不推荐
var cars = Array(20);// 不规范,不推荐
/* 到这里可以看到Array构造的参数如果传递数字N,则创建N个元素的数组,如果传递其他类型,则创建该类型的值,有多少个参数
就有多少个值*/
//字面量表示法
var cars = ['BMW','AD','LBJN','LSLS'];// 于new Array("BMW","AD","LBJN","LSLS");等效的写法
document.write("字面量表示法 大小"+cars.length+"</br>");
document.write("i的值为"+i+"</br>");
// 这里看到i可以访问 在上一个for循环里面i的作用于推到了全局了,可以访问
// 除啦for 类似的还有with if 也可以再外部访问里面的元素,只能在for in with 所在的作用域访问到
for(var i = 0;i<cars.length;i++){// 这里对i重新赋值为0,即var i= 0
document.write("字面表示的值为"+cars[i]+"</br>");
}
var carstemp = [];
document.write("字面量表示法空的Array:"+carstemp.length+"</br>");
/* var carsNo = ['Num1','Num2',]; // 不要用,在IE里面会认为逗号后面是一个Undefined,其他浏览器会忽略逗号
document.write(carsNo.length);
*/
// 于Object一样 数组的字面量表示法在FF里会调用Array构造,其他浏览器不会
cars[0]="JILI"; // 修改第一个值
for(var i = 0;i<cars.length;i++){// 这里对i重新赋值为0,即var i= 0
document.write("字面表示的值(第一项修改为JILI后)为"+cars[i]+"</br>");
}
// 数组超范围访问的特点-----------------------------------
document.write("字面表示的数组大小为"+cars.length+"</br>");
cars[8]="Chinese Car";// 超范围访问赋值的话,数组会自动增加到所访问的值,
// 仅仅是访问的话(如length),数组不变,如第12行,不过length也不是只读的,请看 "数组length特点"
document.write("字面表示的数组此时的大小为"+cars.length+"</br>");
//-------------------------------------------------------
// 数组length特点
var lenArray = ["Num1","Num2","Num3","Num4","Num5","Num6"];
document.write("字面表示的数组 length 特点 此时的大小为"+lenArray.length+"</br>");
lenArray.length = 2;// 删除所谓为该数字以后的所有元素
for(var i = 0;i<lenArray.length;i++){// 这里对i重新赋值为0,即var i= 0
document.write(" 从6个元素中删除掉从2开始的元素,数组中还有"+i+"=="+lenArray[i]+"</br>");
}
lenArray.length = 20;// 超过范围访问的特点,增加数组的大小到该数组,新增的值都默认为Undefined
for(var i = 0;i<lenArray.length;i++){// 这里对i重新赋值为0,即var i= 0
// document.write(" 从2个元素中增加到20个元素,数组中还有"+i+"=="+lenArray[i]+"</br>");
}
// 新增一项分析
var student = ["小明","小华","小伟","小小"];
alert(student.length);
student[student.length] = "刘德华";
alert(student.length);
for(var i = 0;i<student.length;i++){// 这里对i重新赋值为0,即var i= 0
document.write(" 吾问无为谓 "+i+"=="+student[i]+"</br>");
}
// length总是比数组的最大索引值大1,所以可以再数组的length索引处赋值,新增属于超范围赋值。
// 根据超范围访问的特点可以所以的插入到相应的位置一个值 比如插入到 第100 学生为成龙 则为 student[99]="成龙";
// 但是数组的项是有限制的,主要是因为内存限制,浏览器的承受能力也有限,数组的最大值
// 数组的最大个数为4294967295 大约为 2的32次方- 2的21次方左右,估计没谁用这么大的数组。而且当浏览器中数组未达到这个数组的时候就会提示运行时间超长的脚本错误
</SCRIPT>
Javascript Array的基本特点
最新推荐文章于 2026-01-08 11:09:44 发布
本文深入探讨JavaScript中数组的各种创建方式及特性,包括长度属性的使用、超范围访问的影响以及如何通过不同方法修改数组内容。
1259

被折叠的 条评论
为什么被折叠?



