JavaScript模式
JavaScript 模式,Stoyan Stefanov,中国电力出版社,2012 年
编写可维护的 JavaScript
编写可维护的 JavaScript,Nicholas C. Zakas,人民邮电出版社,2013 年
避免使用全局变量(尽可能少使用全局变量,使用单个变量)
var MaintaniableJS = {};
MaintainableJS.Book = function(title) {
this.title = title;
this.page = 1;
}
零全局变量,通过使用立即执行的函数调用并将所有脚本放入其中来实现
(fucntion(win) {
"use strict";
var doc = win.document;
// 在这里定义其他变量
// 其他相关代码
}(window));
不要分发storm对象,一个storm对象包含很多与事件相关的额外信息,通常只使用其中的一部分。
// 好的写法
// 获取位置并定位
var MyApplication = {
handleClick: function (event) {
// 假设事件支持 DOM Level2
event.preventDefault();
event.stopProgation();
// 传入应用逻辑
this.showPopup(event.clientX, event.clientY);
},
showPopup: function(x, y) {
var popup = document.getElementById("popup");
popup.style.left = x + "px";
popup.style.top = y + "px";
popupclassName = "reveal";
}
};
addListener(element, "click", function(event) {
MyApplication.handleClick(event);
});
块更改:锁定对象
var person = {
name: "Nicholas"
};
console.log(Object.isExtensible(person));//true
Object.preventExtensions(person)
console.log(Object.isExtensible(person));//false
person.age = 25; // 严格模式下会报错
console.log(Object.isSealed(person));//false
Object.seal(person);
console.log(Object.isSealed(person));//true
console.log(Object.isFrozen(person));//false
Object.freeze(person);
console.log(Object.isFrozen(person));//true
基本目录结构
JavaScript 启示录
JavaScript 启示录,Cody Lindley,人民邮电出版社,2014 年
有效的 JavaScript:编写高质量 JavaScript 代码的 68 种有效方法
《有效的 JavaScript》,David Hermanjavascript启示录,机械工业出版社,2014 年
JavaScript 性能优化
JavaScript 性能优化:测量、监控和可视化,Tom Barker,机械工业出版社,2014 年
浏览器内核(渲染引擎、渲染引擎):Firefox(Gecko)、Chrome(WebKit、Blink)、Safari(WebKit)、IE(Trident)、Opera(Presto、WebKit、Blink)。
浏览器JavaScript引擎:Firefox(SpiderMonkey)、Chrome(V8)、Safari(JavaScriptCore)、IE(Chakra)、Opera(Carakan)
主要讲工具或者创建自己的工具来分析JavaScript的性能。 一个基本流程是使用WebPagetest的API通过PHP收集数据,然后使用R对数据进行分析和可视化。 后来我升级了这个工具,添加了一个浏览器对象来获取数据(window.performance)。 它还介绍了日志记录工具...总之javascript启示录,这本书是关于分析性能工具的。
Web性能实践日志
Web性能实践日志,Stoyan Stefanov,人民邮电出版社,2014年