Posted: 08 27th, 2008, 4:56am PDT by admin
尽量少的代码冗余,尽量少的局部变量,尽量少的全局变量,如下先举个小例子:
var a = document.getElementsByTagName("p");
var b = a[0];
var c = b.firstChild.nodeValue;
此时,可以看出b这个中间变量,可能我们使用的可以用a[0]来替代,而没有必要申明一个意义不大的变量。那么有人也会提出质疑,“a的意义也不大”,其实不然
var c = document.getElementsByTagName("p").
firstChild.nodeValue;
假使document.getElementsByTagName(”p”)这个对象接下来会用到多次,这是很正常的,比如
document.getElementsByTagName("p").style.color = "red";
那么此时不难发现多次的使用这个对象毫无疑问增加了代码的篇幅,如果它只出现一次两次的话,就无所谓了,一个长表达式就可以满足需要了。
【注】然而并不是任何时候都可以让我们满意:
var linkNode = content.getElementsByTagName("link")[0];
var nodeText = linkNode.firstChild.nodeValue;
可以省略linkNode这个中间变量,写成:
var nodeText = content.getElementsByTagName("link")
[0].firstChild.nodeValue;
而如下的
var achor = document.createElement("a");
achor.setAttribute("href","http:\\..");
var achorTitle = document.createTextNode("hehe");
achor.appendChild(achorTitle);
中间出现了变量achorTitle,开始我会想当然的写成如下:
var achor = document.createElement("a").
appendChild(document.createTextNode("hehe"));
achor.setAttribute("href","http:\\..");
甚至会有如下的欲望:
var achor = document.createElement("a").
setAttribute("href","http:\\..").
appendChild(document.createTextNode("hehe"));
或者
var achor = document.createElement("a").
appendChild(document.createTextNode("hehe")).
setAttribute("href","http:\\..");
可惜的是以上三种设想都没有成功,问号打了许久,不知道为什么这里就不行。
所以并不是任何时候都可以让我们想当然的写程序。
至于什么原因只能待续了。。。
作者:虞峰