首页 > PHP资讯 > HTML5培训技术 > JavaScript数组的使用经验

JavaScript数组的使用经验

HTML5培训技术
  网页制作Webjx文章简介:本文是RickStrahl在使用JavaScript数组上的经验之谈,在一些细微的地方介绍了JavaScript在处理数组上,相对于其他开发语言的不同之处,有些可能是我们自己想当然的事情,但实际上不是那么回事,呵呵。具体涉及到JavaScript数组初始化、length、扩展属性等。
  
  本文是RickStrahl在使用JavaScript数组上的经验之谈,在一些细微的地方介绍了JavaScript在处理数组上,相对于其他开发语言的不同之处,有些可能是我们自己想当然的事情,但实际上不是那么回事,呵呵。具体涉及到JavaScript数组初始化、length、扩展属性等。
  
  【原文】JavascriptArrayFun
  
  【作者】RickStrahl
  
  【译文】http://cuimingda.com/2009/01/javascript-array-fun.html
  
  【译者】明达
  
  以下是对原文的翻译:
  
  Josh在我之前的一篇帖子中留下了一条评论,指出在CSSpropertywatchercomponent中存在一些小错误,这是一个jQuery插件,将CSS属性保存在数组中,并且跟踪这些值的变化,当发现CSS属性值发生变化时,会抛出一个事件,用户可以在事件中做出相应的处理。
  
  我的错误出在如何定义数组上:
  
  vardata={
  
  props:props.split(","),
  
  func:func,
  
  vals:[props.split(",").length],
  
  itvlId:itId
  
  };
  
  这段代码是要建立一个特定长度的数组,但显然结果和我预想的不大一样。实际上这个数组只包含一个元素,就是length的值,而要实现初始化数组的目标,正确的做法应该是下面这个样子:
  
  vals:newArray(props.split(",").length)
  
  可为什么我以前定义的方法错了,那个插件却能正常运行呢?因为JavaScript可以根据赋值动态的建立数组,而不需要预先进行初始化,所以就算定义方法错了,也能正常运行。
  
  $.each(data.props,function(i){data.vals[i]=el.css(data.props[i]);});
  
  这段代码遍历了props数组,并且通过对vals数组对应索引赋值,动态的建立了一个新数组。
  
  JavaScript的数组可以根据所赋的值自动调整大小,比如下面这个例子:
  
  varar=[]
  
  ar[2]=1;
  
  debugger;
  
  下面的结果是Firebug调试界面的截图,可以看到数组中有三个元素。
  
  点击放大
  
  这个数组的长度是3,就像一个经过初始化的数组一样。所有没有赋值的数组对象,都将被定义为undefined。
  
  JavaScript可以自动重新调整数组的大小,这真是太棒了,但也许预先设置一个固定的大小,可以避免数组内部频繁的调整大小。对已有的元素进行赋值,肯定要比每次赋值前重新调整大小要快的多。
  
  这种自动调整大小的机制,更容易出现越界数组(outofboundsarray),而且更难发现。所以要加倍注意类似的情况。
  

HTML5培训技术

本文由欣才IT学院整理发布,未经许可,禁止转载。
支持18不支持0