一.无处不在的js
1.1理解js
对象,原型,函数和闭包的紧密结合组成了JavaScript。
1.1.1js是如何发展的
1.1.2转换编译器
当我们想利用JS的最新特性时,也往往会被残酷的现实绑架:用户依然在使用老旧的浏览器。这该怎么办呢?
解决这个问题的方式之一时是使用转换编译器transpilers(即“转换器” + “编译器”, “transformation + compiling”),这类工具能够把最前沿的JS代码转换为等价的(如果不能实现,则使用相似的)能在当前浏览器中运行的代码。推荐转换编译器:Traceur,Babel。
1.2理解浏览器
1.文档对象模型(DOM)
2.事件
3.浏览器API
1.3使用当前的最佳实践
1.3.1调试
调试JS代码的工具
1.Firebug 2.Chrome DevTools 3.Firefox开发者工具 4.F12开发者工具 5.WebKit检视器
1.3.2测试
断言函数:
assert(condition , message);
第一个参数时一个应为真值的条件,第二个参数时当断言为假时所展示的一句话。例如:
assert( a === 1 , “Disaster! a is not 1!”);
如果变量的值不等于1,那么断言失败,后面的消息就会被展示
注意:断言函数并不是JS的标准特性
1.3.3性能分析
console.time("My operation");//开始计时器
for (var n = 0 ; n < maxCount; n++)
{
//perform the operation to be measured
}
console.timeEnd("My operation"); //停止计时器
在这段代码中,我们把要被测量的代码放在两个计时器调用之间,分别是内置console对象商店time和timeEnd方法。
在操作开始执行之前,调用console.time启动一个明明计时器(本例中名为My operation)。然后再特定的循环次数下运行diamagnetic(本例中运行maxCount次)。由于一次操作执行太快很难测量,所以我们要多次运行代码,取得一个能够测量的值。
操作结束后则用相同的计时器名字调用console.timeEnd。随后浏览器就会输入从开始到当前的时间差。
1.4提高跨平台开发能力
1.5小结
1.客户端Web应用作为如今最流行的应用,其概念,工具和技术从仅开发客户端Web应用已经深入到洽谈应用领域。理解客户端Web应用的基础能帮助你开发一系列不同领域的应用。
2.为了提高开发技能,你需要深入理解JS的核心机制和浏览器所提供的架构。
3.除了JS以外,我们还讲探索浏览器内部,例如DOM(网页UI的一种结构化不是方式)和事件,这是因为客户端Web应用是事件驱动的应用。