网站运营 | 站长学院 | 技术文档 | 成语 | 歇后语 | 桌面壁纸 | 帝国时代 | 代码收藏 | IP地址查询 | 生活百科 | 生日密码 | CSS压缩 | 用户评论

认识JavaScript数组对象的length属性

【 来源:笑笑设计作者:supNate 更新时间:2006-05-08 | 字体:
[导读]很久没写Blog了,最近总结了一些javascript不同于其他语言的特点>,数组的length属性就是一例。数组对象仅有一个属性>,这个属性就是length,它表示数组的长度,即其中元素的个数>>。因为数组的索引总是由0开始>,所以...

很久没写Blog了>,最近总结了一些javascript不同于其他语言的特点,数组的length属性就是一例>。
数组对象仅有一个属性>,这个属性就是length,它表示数组的长度>,即其中元素的个数>。因为数组的索引总是由0开始>>>,所以一个数组的上下限分别是:0和length-1。和其他大多数语言不同的是,javascript数组的length属性是可变的,这一点需要特别注意>。当length属性被设置得更大时,整个数组的状态事实上不会发生变化,仅仅是length属性变大;当length属性被设置得比原来小时>>,则原先数组中索引大于或等于length的元素的值全部被丢失。下面是演示改变length属性的例子:


var arr=[12,23,5,3,25,98,76,54,56,76]; 
//定义了一个包含10个数字的数组
alert(arr.length);  //显示数组的长度10
arr.length=12;   //增大数组的长度
alert(arr.length);  //显示数组的长度已经变为12

alert(arr[8]);   //显示第9个元素的值>>,为56
arr.length=5;   //将数组的长度减少到5,索引等于或超过5的元素被丢弃
alert(arr[8]);   //显示第9个元素已经变为"undefined"
arr.length=10;   //将数组长度恢复为10
alert(arr[8]);   //虽然长度被恢复为10>,但第9个元素却无法收回>,显示"undefined"

由上面的代码我们可以清楚的看到length属性的性质。但length对象不仅可以显式的设置>,它也有可能被隐式修改>>。javascript中可以使用一个未声明过的变量,同样,也可以使用一个未定义的数组元素(指索引超过或等于length的元素),这时>>,length属性的值将被设置为所使用元素索引的值加1>。例如下面的代码:

var arr=[12,23,5,3,25,98,76,54,56,76];
alert(arr.length);
arr[15]=34;
alert(arr.length);


代码中同样是先定义了一个包含10个数字的数组>>,通过alert语句可以看出其长度为10。随后使用了索引为15的元素>>,将其赋值为15,即arr[15]=34>,这时再用alert语句输出数组的长度>>,得到的是16>。无论如何,对于习惯于强类型编程的开发人员来说,这是一个很令人惊讶的特性>>>。事实上>>>,使用new Array()形式创建的数组>>,其初始长度就是为0,正是对其中未定义元素的操作>,才使数组的长度发生变化。
由上面的介绍可以看到>>,length属性是如此的神奇,利用它可以方便的增加或者减少数组的容量。因此对length属性的深入了解>>,有助于在开发过程中灵活运用>。

附留言:
supNate:没有具体例子,窃以为了解了length属性>>,就理解了javascript中的数组。而数组是完成很多例子的基础。因为和其他语言区别比较大>,所以单独讲一下>。例如实现低版本浏览器不支持的数组的pop方法:
Array.prototype.pop=function(){
if(0==this.length)return;
var temp=this[this.length-1];
this.length--;
return temp;
}
这样数组就能作为栈使用了>。

友荐云推荐
  • 转载请注明来源:网站运营 网址:http://www.chinawobo.com/ 向您的朋友推荐此文章
  • 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载>,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站>,我们表示深深的谢意>。如果本站转载的文章有版权问题请联系我们,我们会尽快予以更正。
RSS订阅
  • QQ邮箱
  • 填写您的邮件地址>>,订阅我们的精彩内容:
更多
© 2014 网站运营 - T086.com(原itlearner.com)
微商货源 | 冠珠陶瓷 | 迪威乐云商devmsn | 易奇八字 | wwe美国职业摔角 | 八字算命 | 河南旅游景点大全 |
RunTime:9.69ms QueryTime:7