作者:ysyfff(JChen)
日期:2013-5-23
《JavaScript》权威指南
淘宝前端团队译
机械工业出版社
###第一部分
ch01------>JS概述
ch02------>词法结构
ch03------>类型、值和变量
ch04------>表达式和运算符
ch05------>语句
ch06------>对象
ch07------>数组
ch08------>函数
ch09------>类和模块
ch10------>正则表达式的模式匹配
ch11------>JS的子集和扩展
ch12------>服务器端JS
###第二部分
ch13------>Web浏览器中的JavaScript
ch14------>Window对象
ch15------>脚本化HTML
ch16------>脚本化CSS
ch17------>事件处理
ch18------>脚本化HTTP
ch19------>jQuery类库
ch20------>客户端存储
ch21------>多媒体和图形编程
###ch03: JS的数据类型分为两类:原始数据类型和对象类型。 原始类型包括:数字、字符串和布尔值。 两个特殊的原始值:null 和 undefined 除了那5个就是对象了,其中包括:数组类、函数类、日期类、正则类和错误类。
原始值(undefined、null、布尔值、数字和字符串)是不可改变的;
对象(数组和函数)是可以改变的。
###ch06: 对象是动态的--可以新增属性也可以删除属性--但是它们常用来模拟静态对象 以及静类型语言中的“结构体”。有时它们做字符串的集合。
对象的包含属性的特点是:
可写
可枚举
可配置
除了包含属性,每个对象还拥有三个相关的对象特性:
对象的原型 (指向另一个对象,本对象的属性继承自它的原型对象)
对象的类 (标识对象类型的字符串)
对象的扩展标记 (指明了是否可以向该对象添加新属性)
###ch07:
js数组是无类型的:数组元素可以是任意类型,同一个数组中的不同元素
也可以有不同的类型。数组的元素甚至也可以是对象或者其他数组,这允许
创建复杂的数据结构,如对象的数据和数组的数组。
###ch08:
如果函数挂载到一个对象上,作为对象的一个属性,就承他为对象的方法。
当通过这个对象来调用函数时,该对象就是此次函数调用的上下文,也就是该函数的this的值。
JS的函数可以嵌套在其他函数中定义,这样他们就可以访问他们被定义时所处的作用域中的任何变量。
这意味着JS函数构成了一个闭包,他给JS带来了强劲的编程能力。
###ch09: 在JS中,类的实现是基于原型继承机制的。如果两个实例都是从同一个原型对象上继承了属性, 我们说他们是同一个类的实例。 构造函数是类的公共标识符,而原型是类的唯一标识符。 ###ch11: 子集的定义大部分都是出于安全的考虑,只有使用这门语言的一个安全的子集编写脚本, 才能让代码更安全、更稳定,比如如何更安全的执行一段由不可信第三方提供的广告代码。 ###ch13: 在第二部分中会介绍大量的脚本宿主对象,这些对象可以表示浏览器窗口、文档树和文档的内容等。
Window对象是所有客户端JS特性和API的主要接入点。它表示浏览器的一个窗口或者窗体,并且可以用
window标识符来引用它。
在客户端JS中,Window对象也是全局对象。这意味着Window对象处于作用域的顶端,他的属性和方法
也是全局变量和全局函数。
###好吧,我就明说了吧,Window对象是属于JS的,它有一些属性比如引用了Location对象的location属性,
另外,还有open、close、alert、confirm、prompt、setTimeout、clearTimeout、setInterval、learInterval、
oveBy、resizeBy、scrollB等等的方法。然而,最重要的属性就是它用了Document对象的document属性,
这个属性恰恰就是HTML的API,也就是JS和HTML与CSS的接口。
###ch17: 客户端JS程序采用了异步事件驱动编程模型:我们通过注册事件处理程序函数来写程序。之后在注册的事件发生时 异步调用这些函数。在这种程序设计风格下,当文档、浏览器、元素或者与之相关的对象发生某些有趣的事情时, Web浏览器就会产生事件(event)。
如果程序要响应一个事件,写一个函数,叫做“事件处理程序”、“事件监听器”或“回调”。然后注册这个函数,这样
他们就会在事件发生时调用它。
用事件进行异步编程会经常涉及嵌套函数,也经常要在函数的函数里定义函数。
事件类型:mousemove keydown
事件目标:window button
事件对象:包含该事件详细信息的对象。
事件传播:冒泡、事件捕获。
###ch18: 超文本传输协议HTTP规定Web浏览器如何从Web服务器获取文档和向Web服务器提交表单内容,以及Web服务器如何 响应这些请求和提交。Web浏览器会处理大量的HTTP。通常HTTP并不在脚本的控制下,只是当用户单击链接、 提交表单和输入URL时才发生。但是用JS代码操作HTTP是可行的。
本章会说明在没有导致Web浏览器重新加载任何窗口或者窗体的内容情况下,脚本如何实现Web浏览器与服务器
之间的通信。说白了也就是Ajax。
###ch19: JS的核心API设计得很简单,但由于浏览器之间的严重不兼容性导致客户端的API过于复杂。然则使用JS框架或工具 类库,能简化通用操作,能隐藏浏览器之间的差异,这让很多程序员在开发Web应用时变星更简单。对的,没错, 说的就是jQuery。
jQuery的强大之处在于:
1)丰富强大的语法(css选择器),用来查询文档元素
2)高效的查询方法,用来找到与CSS选择器匹配的文档元素集
3)一套有用的方法,用来操作选中的元素
4)强大的函数式编程,用来批量操作元素集,而不是每次只操作单个
5)简洁的语言用法(链式调用),用来表示一系列顺序操作
###ch20: Web应用允许使用浏览器提供的API将数据存储到用户的电脑上。这种客户端存储相当于赋予了Web浏览器记忆的功能。 ###ch21 本章将介绍如何使用JS来操作图片、控制音频和视频流以及画图。