1. 给父节点绑定事件,而不是每一个子节点。delegate 方法;
2. 对要进行操作元素隐藏,构造好DOM结构,加入在show处理。
3. 减少直接对dom节点的多次操作。document.createDocumentFragment
4. 减少全局变量的重复引用:
function createChildFor(elementId){
var doc = document, //store in a local variable
element = doc.getElementById(elementId),
newElement = doc.createElement("div");
element.appendChild(newElement);
}
//用一个临时变量存放。
var c = _global.a.b.c;
5. IE6 中,数组join('') 操作优于大量字符串+操作。
6. 尽量减少css样式出现在js的代码里面。更改样式,请用定义class来代替,只针对class操作。
例如:
element.style.color = "red";
element.style.left = "10px";
element.style.top = "100px";
element.style.visibility = "visible";
or
element.style.cssText = "color: red; left: 10px; top: 100px; visibility: hidden";
方案:.reveal {color: red;left: 10px;top: 100px;visibility: visible;}
7. 分离事件监听函数、事件处理函数。不传递不必要的event对象:
var MyApplication = {
handleClick: function(event) {
this.showPopup(event.clientX, event.clientY);
},
//这里函数的处理逻辑,只是跟参数值有关,不应该牵扯到UI关联的Event事件。
showPopup: function(x, y) {
var popup = document.getElementById("popup");
popup.style.left = x + "px";
popup.style.top = y + "px";
}
};
// 这里只是定义了事件的处理函数,真正的处理逻辑不要同时写到这里。
addListener(element, "click", function(event) {
MyApplication.handleClick(event); // this is okay
});
//如此一来,重用showPopup 函数就成为了可能:
MyApplication.showPopup(10, 10);
8. 关于属性(不是属性值)存在判断,
if(typeof obj.a){} // wrong.
if(obj.a){} // wrong.
if(obj.a != null){} // wrong.
if(obj.a != undefined){} // wrong.
//为什么?假如:
var obj = { a: null, b:0, c:"",d:undefined};
//事实上,上述的判断都是值判断,不合我们的要求。正确的判断:
if("a" in obj){} //true
// 或者是
if(obj.hasOwnProperty("a")){} //true
// 注意:对于IE6/7/8, DOMElement 对象是不会继承 js原生对象Object的hasOwnProperty方法。
9. 不要重写原生对象、方法,包括直接扩展方法。
事实上,因为这些对象、方法都不是你来维护的,它们的更新超出你的控制。
一种替代方法是门面设计模式——把原生的东西包起来,例如jQuery对象。
Array.prototype.index = function(){} // 不赞成
/**
* @param arr {Array} 数组对象
*/
function MyArray(arr){
this.arr = arr;
}
MyArray.prototype.index = function(){};
var myArray = new MyArray([...]);
myArray.index()
ECMAScript 5草案中新增了对象的加锁,可以从根本上防止这一类错误的。
内容来自:《Maintainable JavaScript》
分享到:
相关推荐
《Effective JavaScript:编写高质量JavaScript代码的68个有效方法》是David Herman撰写的一本JavaScript编程指南,该书基于作者在Ecma的JavaScript标准化委员会的工作经验,深入探讨了JavaScript的内部工作机制、...
根据提供的部分内容,上述知识点应该能够涵盖Java执行JavaScript代码这一主题的核心概念和技术细节。在实际应用中,开发者需要根据这些知识点来编写Java代码,以便在Java程序中集成和执行JavaScript代码。
在`javascript万年历.txt`这个文件中,很可能是包含了具体的代码实现或者算法描述,通过分析这些内容,开发者可以更深入地了解这个万年历的实现细节。学习和理解这样的示例项目,对于提升JavaScript编程技能和开发...
本话题聚焦于"C++调用JavaScript代码",这是一个涉及多层技术栈的融合应用。C++是一种强大的系统级编程语言,而JavaScript则广泛应用于Web前端开发。通过将两者结合,我们可以构建混合式应用程序,利用C++的性能和...
面向对象编程(Object-Oriented Programming,简称OO)是计算机编程范式之一...通过以上要点,可以编写出既可维护又面向对象的JavaScript代码,不仅让他人容易理解和使用,还能在长时间内节省维护成本,提高开发效率。
本书重点在于教导开发者如何编写出既高效又易于维护的JavaScript代码,这对于任何从事前端开发或是全栈开发的专业人士来说都是极其宝贵的资源。 ### 一、风格指南 #### 1. 基本格式化 - **缩进级别**:书中强调了...
这一特性使得开发人员在编写JavaScript代码时,可以快速查找和使用各种函数、对象和属性,无需记忆大量的API细节。 首先,当开发者开始键入JavaScript代码时,VS 2008会自动提供函数名、变量名和对象属性的提示。只...
JavaScript代码通常分为以下几个主要部分: 1. **事件监听**:使用`addEventListener`方法监听鼠标移动事件,如`mousemove`。当鼠标在原始图片上移动时,触发相应函数。 2. **计算坐标**:在事件处理函数中,我们...
《编写可维护的JavaScript》向开发人员阐述了如何在团队开发中编写具备高可维护性的JavaScript代码,书中详细说明了作为团队一分子,应该怎么写JavaScript。本书内容涵盖了编码风格、编程技巧、自动化、测试等几方面...
### 如何组织你的JavaScript代码 在现代Web开发中,JavaScript已成为不可或缺的一部分,它的重要性随着Web应用变得越来越复杂而日益凸显。对于ASP/JSP程序员来说,掌握如何高效地组织JavaScript代码是一项重要的...
虽然JavaScript中的分号使用是可选的,但理解其自动插入机制和潜在陷阱对于编写健壮、易于维护的代码至关重要。无论是选择使用还是省略分号,关键是要确保代码的清晰性和一致性。通过遵循最佳实践,可以最大限度地...
为了实现这些功能,JavaScript代码将通过事件监听器捕获用户的操作,如点击播放按钮事件,然后执行相应的函数,如调用audio标签的play()方法。 此外,一个完整的音乐播放器还需要处理更多细节,如歌曲的循环播放...
JavaScript代码规范是一套针对JavaScript编程实践的详细指南,...通过遵循这些规范,开发者可以编写出更加健壮、高效和易于维护的JavaScript代码。这些规范有助于减少bug,提高团队协作效率,同时使得代码更加标准化。
它的核心功能是将Python和JavaScript代码自动转换成DOT格式的流程图。这种转换对于理解复杂代码、文档化程序流程和促进团队内部沟通有着极其重要的作用。 首先,让我们了解什么是DOT流程图。DOT是一种图描述语言,...
正确使用等值运算符、避免滥用“eval”、规范代码编写风格、合理放置脚本、优化for循环内部逻辑、减少全局变量的使用以及高效构建字符串,这些都是编写高质量JavaScript代码应该关注的要点。遵循这些最佳实践,可以...
项目:用 JavaScript 编写的简单恐龙小说游戏 简单恐龙小说游戏是一个 JavaScript 项目。这是一款简单而有趣的虚构游戏,您可能会将其列入您的愿望清单中。这款游戏主要包含 JavaScript 和一些 CSS,以使其看起来很...
每种语言都有它特别的地方,对于JavaScript来说,使用var就可以声明任意类型的变量,这门脚本语言看起来很简单,然而想要写出优雅的代码却是需要不断积累经验的。本文利列举了JavaScript初学者应该注意的七个细节,...