JavaScript是目前Web客户端开发的主要编程语言,也是Ajax的核心技术之一。本书从最早期Netscape浏览器中的JavaScript开始讲起,直到当前它对XML和Web服务的具体支持,内容主要涉及JavaScript的语言特点、JavaScript与浏览器的交互、更高级的JavaScript技巧,以及与在Web应用程序中部署JavaScript解决方案有关的问题,如错误处理、调试、安全性、优化/混淆化、XML和Web服务,最后介绍应用所有这些知识来创建动态用户界面。本书适合有一定编程经验的开发人员阅读,也可作为高校相关专业课程的教材。
第1章 JavaScript是什么 1 1.1 历史简述1 1.2 JavaScript实现2 1.2.1 ECMAScript 1.2.2 DOM5 1.2.3 BOM8 1.3 小结8 第2章 ECMAScript基础9 2.1 语法9 2.2 变量10 2.3 关键字12 2.4 保留字12 2.5 原始值和引用值13 2.6 原始类型13 2.6.1 typeof运算符14 2.6.2 Undefined类型14 2.6.3 Null类型15 2.6.4 Boolean类型15 2.6.5 Number类型15 2.6.6 String类型17 2.7 转换18 2.7.1 转换成字符串18 2.7.2 转换成数字19 2.7.3 强制类型转换20 2.8 引用类型22 2.8.1 Object类22 2.8.2 Boolean类23 2.8.3 Number类23 2.8.4 String类24 2.8.5 instanceof运算符28 2.9 运算符28 2.9.1 一元运算符28 2.9.2 位运算符32 2.9.3 Boolean运算符37 2.9.4 乘性运算符40 2.9.5 加性运算符41 2.9.6 关系运算符42 2.9.7 等性运算符43 2.9.8 条件运算符45 2.9.9 赋值运算符45 2.9.10 逗号运算符46 2.10 语句46 2.10.1 if语句46 2.10.2 迭代语句47 2.10.3 有标签的语句48 2.10.4 break语句和continue 语句48 2.10.5 with语句50 2.10.6 switch语句50 2.11 函数51 2.11.1 无重载53 2.11.2 arguments对象53 2.11.3 Function类54 2.11.4 闭包56 2.12 小结57 第3章 对象基础.58 3.1 面向对象术语58 3.1.1 面向对象语言的要求58 3.1.2 对象的构成59 3.2 对象应用59 3.2.1 声明和实例化59 3.2.2 对象引用59 3.2.3 对象废除59 3.2.4 早绑定和晚绑定60 3.3 对象的类型60 3.3.1 本地对象60 3.3.2 内置对象70 3.3.3 宿主对象75 3.4 作用域75 3.4.1 公用、受保护和私有作用域75 3.4.2 静态作用域并非静态的76 3.4.3 关键字this76 3.5 定义类或对象78 3.5.1 工厂方式78 3.5.2 构造函数方式80 3.5.3 原型方式80 3.5.4 混合的构造函数/原型方式81 3.5.5 动态原型方法82 3.5.6 混合工厂方式83 3.5.7 采用哪种方式84 3.5.8 实例84 3.6 修改对象86 3.6.1 创建新方法86 3.6.2 重定义已有方法87 3.6.3 极晚绑定88 3.7 小结88 第4章 继承. 104.89 100 4.1 继承机制实例89 4.2 继承机制的实现90 4.2.1 继承的方式90 4.2.2 一个更实际的例子96 4.3 其他继承方式100 4.3.1 zInherit 4.3.2 xbObjects 4.4 小结108 第5章 浏览器中的JavaScript 109 5.1 HTML中的JavaScript 109 5.1.1 标签109 5.1.2 外部文件格式110 5.1.3 内嵌代码和外部文件111 5.1.4 标签放置111 5.1.5 隐藏还是不隐藏113 5.1.6 标签113 5.1.7 XHTML中的改变114 5.2 SVG中的JavaScript 116 5.2.1 SVG基础116 5.2.2 SVG中的标签117 5.2.3 SVG中的标签放置118 5.3 BOM119 5.3.1 window对象119 5.3.2 document对象130 5.3.3 location对象133 5.3.4 navigator对象135 5.3.5 screen对象136 5.4 小结137 第6章 DOM基础138 6.1 什么是DOM?138 6.1.1 XML简介138 6.1.2 针对XML的API 141 6.1.3 节点的层次141 6.1.4 特定语言的DOM144 6.2 对DOM的支持145 6.3 使用DOM145 6.3.1 访问相关的节点145 6.3.2 检测节点类型146 6.3.3 处理特性147 6.3.4 访问指定节点148 6.3.5 创建和操作节点150 6.4 HTML DOM特征功能155 6.4.1 让特性像属性一样155 6.4.2 table方法156 6.5 遍历DOM158 6.5.1 NodeIterator 158 6.5.2 TreeWalker.163 6.6 测试与DOM标准的一致性165 6.7 DOM Level 3 166 6.8 小结166 第7章 正则表达式167 7.1 正则表达式支持167 7.1.1 使用RegExp对象168 7.1.2 扩展的字符串方法169 7.2 简单模式170 7.2.1 元字符170 7.2.2 使用特殊字符170 7.2.3 字符类172 7.2.4 量词174 7.3 复杂模式177 7.3.1 分组177 7.3.2 反向引用178 7.3.3 候选179 7.3.4 非捕获性分组180 7.3.5 前瞻181 7.3.6 边界182 7.3.7 多行模式183 7.4 理解RegExp对象184 7.4.1 实例属性184 7.4.2 静态属性185 7.5 常用模式186 7.5.1 验证日期187 7.5.2 验证信用卡号188 7.5.3 验证电子邮件地址192 7.6 小结193 第8章 检测浏览器和操作系统194 8.1 navigator对象194 8.2 检测浏览器的方式194 8.2.1 对象/特征检测法194 8.2.2 user-agent字符串检测法195 8.3 user-agent字符串简史196 8.3.1 Netscape Navigator 3.0与 IE3.0 196 8.3.2 Netscape Communicator 4.0与 IE 4.0. 197 8.3.3 IE 5.0及更高版本198 8.3.4 Mozilla 8.3.5 Opera 8.3.6 Safari 8.3.7 结语201 8.4 浏览器检测脚本201 8.4.1 方法学202 8.4.2 第一步202 8.4.3 检测Opera 204 8.4.4 检测Konqueror/Safari 206 8.4.5 检测IE 208 8.4.6 检测Mozilla 209 8.5 平台/操作系统检测脚本211 8.5.1 方法学211 8.5.2 第一步212 8.5.3 检测Windows操作系统212 8.5.4 检测Macintosh操作系统214 8.5.5 检测Unix操作系统214 8.6 全部脚本215 8.7 例子:登录页面219 8.8 小结224 第9章 事件 225 9.1 今天的事件225 9.2 事件流226 9.2.1 冒泡型事件226 9.2.2 捕获型事件227 9.2.3 DOM事件流228 9.3 事件处理函数/监听函数229 9.3.1 IE 9.3.2 DOM231 9.4 事件对象232 9.4.1 定位233 9.4.2 属性233 9.4.3 相似性235 9.4.4 区别238 9.5 事件的类型240 9.5.1 鼠标事件240 9.5.2 键盘事件244 9.5.3 HTML事件246 9.5.4 变化事件251 9.6 跨平台的事件252 9.6.1 EventUtil对象252 9.6.2 添加/删除事件处理函数252 9.6.3 格式化event对象254 9.6.4 获取事件对象258 9.6.5 示例259 9.7 小结260 第10章 高级DOM技术.261 10.1 样式编程261 10.1.1 DOM样式的方法263 10.1.2 自定义鼠标提示264 10.1.3 可折叠区域265 10.1.4 访问样式表266 10.1.5 最终样式270 10.2 innerText和innerHTML 271 10.3 outerText和outerHTML 273 10.4 范围27410.4.1 DOM中的范围274 10.4.2 IE中的范围284 10.4.3 范围在实际中的应用288 10.5 小结288 ……