国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Javascript 代碼也可以變得優美的實現方法

2024-05-06 14:15:05
字體:
來源:轉載
供稿:網友
一、簡化代碼
采用更為簡短的寫法,不僅可以減少輸入的字符數,還可以減少文件大小。大部分采用簡單寫法的代碼,執行效率都有輕微提高。
1.1 簡化常用對象定義:使用 var obj = {}; 代替 var obj = new Object();
使用 var arr = []; 代替 var arr = new Array();
1.2 精簡if語句三元操作符可以有效精簡只涉及賦值傳值操作的if語句,比如
var score = 60, grade;
if (score < 60) {
grade = “不及格”;
} else {
grade = “及格”;
}
可以精簡為:
var score = 60;
var grade = score < 60 ? “不及格” : “及格”;
三元操作符也支持嵌套,但是嵌套的層次太多會影響程序的可讀性,這方面要多加斟酌。
1.3 使用JSONJSON是一種輕量級的數據格式,輕量級首先體現在它的結構定義非常簡單。
var obj = {};
obj.p1 = ‘a';
obj.p2 = ‘b';
obj.p3 = ‘c';
可精簡為:
var obj = {
p1 : ‘a',
p2 : ‘b',
p3 : ‘c'
};
二、使用高效率的代碼
網上流傳的效率優化文章非常多,一些比較專業的Javascript書籍也談到了不少,因此,這里就只列出一些很少談到的。
2.1 精簡循環體循環的效率很大程度上是由循環體決定的,與之相比,用for還是while的差別就太小了。考慮如下的代碼,其功能是為某一批元素添加事件:
代碼如下:
function addEvent(elems, eventName, handler) {
for (var i = 0, len = elems.length; i < len; i++) {
if (window.attachEvent) {
elems[i].attachEvent(”on” + eventName, handler);
} else if (window.addEventListener) {
elems[i].addEventListener(eventName, handler, false);
}
}
}

循環每執行一次,都會判斷window對象的attachEvent或addEventListener是否存在,其實這個僅判斷一次也就夠了;此外,“”on” + eventName”的字符串拼接也會重復執行。優化如下:
代碼如下:
function addEvent(elems, eventName, handler) {
var i = -1, len = elems.length;
if (window.attachEvent) {
eventName = “on” + eventName;
while (++i < len) {
elems[i].attachEvent(eventName, handler);
}
} else if (window.addEventListener) {
while (++i < len) {
elems[i].addEventListener(eventName, handler, false);
}
}
}

2.2 盡量使用原生的函數而不是自定義函數當你對Javascript的內置類型變量執行某項操作時,你應該先查查這項操作是否有原生的方法。
要生成一個數組的副本,你會怎么做呢?遍歷數組元素然后逐個賦值到另一個數組,這似乎是唯一的方法。其實,原生的Array.prototype.slice就可以達到復制的目的。這個方法可以從某個數組返回選定的元素,且不影響原來的數組。如果參數留空,返回的就是全部元素。
Array.prototype.slice還可以對某些不是數組而又能通過數字索引訪問的類型進行操作,比如 代碼如下:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 敦化市| 察隅县| 灵川县| 汶川县| 米泉市| 商水县| 佛冈县| 金华市| 麻阳| 巢湖市| 江华| 河津市| 永昌县| 江山市| 无棣县| 平邑县| 马关县| 黄龙县| 富阳市| 泗水县| 随州市| 平凉市| 新源县| 旺苍县| 三门县| 和平区| 黄冈市| 大田县| 凉城县| 铅山县| 申扎县| 乡宁县| 芜湖县| 海阳市| 如皋市| 湖州市| 定结县| 阿城市| 汨罗市| 安宁市| 陇西县|