WEB开发网
开发学院网页设计JavaScript 高质量JavaScript代码书写基本要点 阅读

高质量JavaScript代码书写基本要点

 2010-10-25 12:58:02 来源:WEB开发网   
核心提示:最后一个需要对循环进行调整的是使用下面表达式之一来替换i++,i = i + 1i += 1JSLint提示您这样做,高质量JavaScript代码书写基本要点(8),原因是++和–-促进了“过分棘手(excessive trickiness)”,//zxx:这里比较难翻译,对象使用

最后一个需要对循环进行调整的是使用下面表达式之一来替换i++。

i = i + 1
i += 1
JSLint提示您这样做,原因是++和–-促进了“过分棘手(excessive trickiness)”。//zxx:这里比较难翻译,我想本意应该是让代码变得更加的棘手
如果你直接无视它,JSLint的plusplus选项会是false(默认是default)。

还有两种变化的形式,其又有了些微改进,因为:

» 少了一个变量(无max)
» 向下数到0,通常更快,因为和0做比较要比和数组长度或是其他不是0的东西作比较更有效率
第一种变化的形式:

var i, myarray = [];
for (i = myarray.length; i–-;) {
  // 使用myarray[i]做点什么
}
第二种使用while循环:

var myarray = [],
   i = myarray.length;
while (i–-) {
  // 使用myarray[i]做点什么
}
这些小的改进只体现在性能上,此外JSLint会对使用i–-加以抱怨。

for-in循环(for-in Loops)
for-in循环应该用在非数组对象的遍历上,使用for-in进行循环也被称为“枚举”。

从技术上将,你可以使用for-in循环数组(因为JavaScript中数组也是对象),但这是不推荐的。因为如果数组对象已被自定义的功能增强,就可能发生逻辑错误。另外,在for-in中,属性列表的顺序(序列)是不能保证的。所以最好数组使用正常的for循环,对象使用for-in循环。

有个很重要的hasOwnProperty()方法,当遍历对象属性的时候可以过滤掉从原型链上下来的属性。

思考下面一段代码:

// 对象
var man = {
  hands: 2,
  legs: 2,
  heads: 1
};

// 在代码的某个地方
// 一个方法添加给了所有对象
if (typeof Object.prototype.clone === "undefined") {
  Object.prototype.clone = function () {};
}


上一页  3 4 5 6 7 8 9 10 11 12 13  下一页

Tags:高质量 JavaScript 代码

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接