可讀性可讀性的另一方面是注釋,下面內容需要進行注釋
變數和函式命名
變數型別透明
尊重物件所有權
避免全域性量
//兩個全域性量——避免!!
var name = "nicholas";
function sayname()
//乙個全域性量——推薦
name: "nicholas",
sayname: function()
}
避免與null進行比較function sortarray(values)
}function sortarray(values)
}
使用常量
var constants = ;
function validate(value)
}
避免全域性查詢function updateui()
var msg = document.getelementbyid("msg");
msg.innerhtml = "update complete.";
}//改進
function updateui()
var msg = doc.getelementbyid("msg");
msg.innerhtml = "update complete.";
}
避免with語句function updatebody()
}//改進
function updatebody()
避免不必要的屬性查詢
優化迴圈
展開迴圈
//credit: speed up your site (new riders, 2003)
var iterations = math.floor(values.length / 8);
var leftover = values.length % 8;
var i = 0;
if (leftover > 0) while (--leftover > 0);
}do while (--iterations > 0);
避免雙重解釋//某些**求值——避免!!
eval("alert('hello world!')");
//建立新函式——避免!!
var sayhi = new function("alert('hello world!')");
//設定超時——避免!!
settimeout("alert('hello world!')", 500);
//已修正
alert('hello world!');
//建立新函式——已修正
var sayhi = function();
//設定乙個超時——已修正
settimeout(function(), 500);
其他多個變數宣告//4 個語句 —— 很浪費
var count = 5;
var color = "blue";
var values = [1,2,3];
var now = new date()
//改進
//乙個語句
var count = 5,
color = "blue",
values = [1,2,3],
now = new date()
插入迭代值var name = values[i];
i++;
//改進
var name = values[i++];
使用陣列和物件字面量//用 4 個語句建立和初始化陣列——浪費
var values = new array();
values[0] = 123;
values[1] = 456;
values[2] = 789;
//用 4 個語句建立和初始化物件——浪費
var person = new object();
person.name = "nicholas";
person.age = 29;
person.sayname = function();
//改進
//只用一條語句建立和初始化陣列
var values = [123, 456, 789];
//只用一條語句建立和初始化物件
var person =
};
最小化現場更新var list = document.getelementbyid("mylist"),
fragment = document.createdocumentfragment(),
item,
i;for (i=0; i < 10; i++)
使用innerhtmlvar list = document.getelementbyid("mylist"),使用事件**html = "",
i;for (i=0; i < 10; i++)
list.innerhtml = html;
htmlcollection
var images = document.getelementsbytagname("img"),
image,
i, len;
for (i=0, len=images.length; i < len; i++)
檔案壓縮
http壓縮
高程3總結 第19章E4X
使用 has content 和 hascomplexcontent 方法,可以確定 xml 物件中是只包含文字,還是包含更複雜的內容。如果 xml 物件中只包含子文字節點,則前乙個方法會返回 true 如果 xml 物件的子節點中有任何非文字節點,則後乙個方法返回 true alert emplo...
高程3總結 第16章HTML5指令碼程式設計
dropeffect屬性只有搭配effectallowed屬性才有用,effectallowed屬性表示允許拖動元素的哪種dropeffect,effectallowed屬性可能的值如下 取得元素的引用 var player document.getelementbyid player btn do...
第6章 需求分析與建模最佳實踐
軟體需求分析是軟體需求工程中最為核心的工作,而需求建模則是需求分析的主要手段。需求建模有很多任務具,到底怎麼有效地應用到需求分析過程中也是令人感到難以掌握的東西,本章為讀者勾勒出需求分析的階段與任務,指出如何選擇合適的建模工具,以及在什麼時機 如何應用這些建模工具。6.1需求分析與建模的藥點與誤區分...