使用JavaScript数组上的经验之谈

2016-02-20 00:49 4 1 收藏

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐使用JavaScript数组上的经验之谈,希望大家看完后也有个好心情,快快行动吧!

【 tulaoshi.com - Web开发 】

本文是Rick Strahl在使用JavaScript数组上的经验之谈,在一些细微的地方介绍了JavaScript在处理数组上,相对于其他开发语言的不同之处,有些可能是我们自己想当然的事情,但实际上不是那么回事,呵呵。具体涉及到JavaScript数组初始化、length、扩展属性等。

Javascript Array Fun
Rick Strahl
http://cuimingda.com/2009/01/javascript-array-fun.html
明达

以下是对原文的翻译

Josh在我之前的一篇帖子中留下了一条评论,指出在CSS property watcher component中存在一些小错误,这是一个jQuery插件,将CSS属性保存在数组中,并且跟踪这些值的变化,当发现CSS属性值发生变化时,会抛出一个事件,用户可以在事件中做出相应的处理。

我的错误出在如何定义数组上:

var data = {
  props: props.split(","),
  func: func,
  vals: [props.split(",").length],
  itvlId: itId
};

这段代码是要建立一个特定长度的数组,但显然结果和我预想的不大一样。实际上这个数组只包含一个元素,就是length的值,而要实现初始化数组的目标,正确的做法应该是下面这个样子:

vals: new Array(props.split(",").length)

可为什么我以前定义的方法错了,那个插件却能正常运行呢?因为JavaScript可以根据赋值动态的建立数组,而不需要预先进行初始化,所以就算定义方法错了,也能正常运行。

$.each(data.props, function(i) { data.vals[i] = el.css(data.props[i]); });

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

这段代码遍历了props数组,并且通过对vals数组对应索引赋值,动态的建立了一个新数组。

JavaScript的数组可以根据所赋的值自动调整大小,比如下面这个例子:

var ar = []
ar[2] = 1;
debugger;

下面的结果是Firebug调试界面的截图,可以看到数组中有三个元素。


点击放大

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

这个数组的长度是3,就像一个经过初始化的数组一样。所有没有赋值的数组对象,都将被定义为undefined。

JavaScript可以自动重新调整数组的大小,这真是太棒了,但也许预先设置一个固定的大小,可以避免数组内部频繁的调整大小。对已有的元素进行赋值,肯定要比每次赋值前重新调整大小要快的多。

这种自动调整大小的机制,更容易出现越界数组(out of bounds array),而且更难发现。所以要加倍注意类似的情况。

来源:http://www.tulaoshi.com/n/20160220/1632613.html

延伸阅读
标签: Web开发
“div+CSS”俨然已成为一种“时尚”,“重构”的春风吹遍大江南北,互联网一时间风声鹤唳,难以尽数的网站都不约而同地开始了自己的“重构”。然而打开这形形色色网站的源代码,却时常令人哑然失笑—— 我们看到有嵌套6、7层的div布局,有不用table的表格,有纯div+a构成的页面,有成百上千的表现层class……现在关于标准的书籍越来越...
标签: 手机游戏
《NBA梦之队》内线选择 资深玩家经验之谈 说说《NBA梦之队》内线,这次内线选择主要从两个点来讲,1、关于PF的选择 2、关于C的选择。 NBA梦之队大前PF选择分析: 邓肯: 最强的橙色内线,没有之一,不论是在PF位还是在C位都极其好用,技能触发拿到球就有,防御属性成长惊人,后期潜力巨大,如果有个7,8星的完美邓肯,你会明显感...
《神界2》通关感受及经验之谈 游戏不得不说是意外的短,无任何修改,我通关时35级,身上的10件套双手套装集齐了8件! (没刻意去刷装备,如果刷下箱子凑够一套应该不是难事)史诗装备爆了两个盾! 但这么好的装备等于没有,因为不能在新游戏时继承等级继续游戏,猜想这游戏还会有扩展包或资料片! 地图没想象中的那么大,地下迷宫数量还可以...
标签: 怀孕
1、孕期性爱影响宝宝智商? 老人说:怀孕后不能同房,同房会小产。也有人说:孕期性爱,宝宝会变笨。据统计:为了宝宝的健康与聪明,11.5%的准爸准妈会忍受10个月的性饥荒。其实大可不必。度过了眩晕呕吐的孕早期,孕中期的妈妈不仅会食欲大开,对于性爱的需求也会节节高。适当的孕期性爱不仅对宝宝的体格智商大有裨益,而任何食物...
标签: 月经
摘要: 对于很多女性朋友来讲,每个月来月经的那几天整个人就会没什么精神,脾气也变得很暴躁、连自己都控制不了的发脾气,除了这些以外还有可能出现头晕的情况,真是太烦人了!那么,来月经头晕是怎么回事呢?经期头晕我们又该怎么办呢?     对于很多女性...

经验教程

931

收藏

7
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部