JavaScript高级程式设计:第2版


JavaScript高级程式设计:第2版

文章插图
JavaScript高级程式设计:第2版【JavaScript高级程式设计:第2版】JavaScript高级程式设计(第2版)一般指本词条
《JavaScript高级程式设计:第2版》是2010-7人民邮电出版社出版的图书,作者是Nicholas Zakas
基本介绍作者:Nicholas Zakas
译者:李松峰/曹力
ISBN:9787115230959
页数:600
定价:89.00元
出版社:人民邮电出版社
出版时间:2010-7
内容介绍《JavaScript高级程式设计(第2版)》在上一版基础上进行了大幅度更新和修订,融入了近几年来JavaScript套用发展的最新成果,几乎涵盖了所有需要理解的重要概念和最新的JavaScript套用成果 。从颇具深度的JavaScript语言基础到作用域(链),从引用类型到面向对象编程,从极其灵活的匿名函式到闭包的内部机制,从浏览器对象模型(BOM)、文档对象模型(DOM)到基于事件的Web脚本设计,从XML(E4X)到Ajax及JSON,从高级前端开发技术到前沿的客户端存储,从最佳编程实践到即将成为现实的API,直至JavaScript未来的发展,全景式地展示了JavaScript高级程式设计的方方面面 。《JavaScript高级程式设计(第2版)》适合不同层次的JavaScript/Web开发人员阅读参考,也可作为高校相关专业课程的教材 。点击连结进入新版: JavaScript高级程式设计(第3版)作者介绍Nicholas C. Zakas(尼古拉斯·泽卡斯)世界顶级Web技术专家,现为Yahoo!公司首席前端工程师 。尼古拉斯拥有丰富的Web开发和界面设计经验,曾经参与许多世界级大公司的Web解决方案开发 。他还是High Performance JavaScript(O’Reilly)一书的作者,并曾与他人合作撰写了畅销书Professional Ajax, Second Edition(Wiley)、Even Faster Web Sites(O’Reilly) 。尼古拉斯拥有梅里马克学院计算机科学学士学位和埃迪柯特学院的MBA学位 。他的个人网站是www.nczonline.net 。作品目录第1章 JavaScript简介 11.1 JavaScript简史 11.2 JavaScript实现 21.2.1 ECMAScript 31.2.2 文档对象模型(DOM) 51.2.3 浏览器对象模型(BOM) 71.3 JavaScript版本 81.4 小结 8第2章 在HTML中使用JavaScript 92.1 script元素 92.1.1 标籤的位置 112.1.2 延迟脚本 112.1.3 在XHTML中的用法 122.1.4 不推荐使用的语法 132.1.5 嵌入代码与外部档案 132.2 文档模式 142.3 noscript元素 152.4 小结 16第3章 基本概念 173.1 语法 173.1.1 区分大小写 173.1.2 标识符 173.1.3 注释 183.1.4 语句 183.2 关键字和保留字 183.3 变数 193.4 数据类型 203.4.1 typeof操作符 203.4.2 Undefined类型 213.4.3 Null类型 223.4.4 Boolean类型 223.4.5 Number类型 233.4.6 String类型 283.4.7 Object类型 303.5 操作符 313.5.1 一元操作符 313.5.2 位操作符 343.5.3 布尔操作符 383.5.4 乘性操作符 403.5.5 加性操作符 423.5.6 关係操作符 433.5.7 相等操作符 443.5.8 条件操作符 463.5.9 赋值操作符 463.5.10 逗号操作符 473.6 语句 473.6.1 if语句 473.6.2 do-while语句 483.6.3 while语句 483.6.4 for语句 483.6.5 for-in语句 493.6.6 label语句 503.6.7 break和continue语句 503.6.8 with语句 523.6.9 switch语句 523.7 函式 543.7.1 理解参数 553.7.2 没有重载 573.8 小结 57第4章 变数、作用域和记忆体问题 594.1 基本类型和引用类型的值 594.1.1 动态属性 604.1.2 複製变数值 604.1.3 传递参数 624.1.4 检测类型 634.2 执行环境及作用域 644.2.1 延长作用域链 664.2.2 没有块级作用域 664.3 垃圾收集 694.3.1 标记清除 694.3.2 引用计数 694.3.3 性能问题 704.3.4 管理记忆体 714.4 小结 72第5章 引用类型 735.1 Object类型 735.2 Array类型 755.2.1 转换方法 775.2.2 栈方法 785.2.3 伫列方法 795.2.4 重排序方法 805.2.5 操作方法 815.3 Date类型 835.3.1 继承的方法 845.3.2 日期格式化方法 855.3.3 日期/时间组件方法 855.4 RegExp类型 865.4.1 RegExp实例属性 885.4.2 RegExp实例方法 895.4.3 RegExp构造函式属性 905.4.4 模式的局限性 925.5 Function类型 925.5.1 没有重载(深入理解) 935.5.2 函式声明与函式表达式 945.5.3 作为值的函式 945.5.4 函式内部属性 965.5.5 函式属性和方法 975.6 基本包装类型 995.6.1 Boolean类型 1005.6.2 Number类型 1015.6.3 String类型 1025.7 内置对象 1095.7.1 Global对象 1095.7.2 Math对象 1115.8 小结 114第6章 面向对象的程式设计 1156.1 创建对象 1156.1.1 工厂模式 1156.1.2 构造函式模式 1166.1.3 原型模式 1196.1.4 组合使用构造函式模式和原型模式 1286.1.5 动态原型模式 1296.1.6 寄生构造函式模式 1296.1.7 稳妥构造函式模式 1306.2 继承 1316.2.1 原型链 1316.2.2 借用构造函式 1366.2.3 组合继承 1376.2.4 原型式继承 1386.2.5 寄生式继承 1396.2.6 寄生组合式继承 1396.3 小结 142第7章 匿名函式 1437.1 递归 1447.2 闭包 1447.2.1 闭包与变数 1477.2.2 关于this对象 1487.2.3 记忆体泄漏 1497.3 模仿块级作用域 1507.4 私有变数 1527.4.1 静态私有变数 1537.4.2 模组模式 1547.4.3 增强的模组模式 1567.5 小结 157第8章 BOM 1588.1 window对象 1588.1.1 全局作用域 1588.1.2 视窗关係及框架 1598.1.3 视窗位置 1618.1.4 视窗大小 1628.1.5 导航和打开视窗 1638.1.6 间歇调用和逾时调用 1668.1.7 系统对话框 1688.2 location对象 1698.2.1 查询字元串参数 1708.2.2 位置操作 1718.3 navigator对象 1728.3.1 检测外挂程式 1738.3.2 注册处理程式 1758.4 screen对象 1768.5 history对象 1778.6 小结 178第9章 客户端检测 1799.1 能力检测 1799.2 怪癖检测 1819.3 用户代理检测 1819.3.1 用户代理字元串的历史 1829.3.2 用户代理字元串检测技术 1879.3.3 完整的代码 1999.3.4 使用方法 2029.4 小结 202第10章 DOM 20410.1 节点层次 20410.1.1 Node类型 20510.1.2 Document类型 21010.1.3 Element类型 21710.1.4 Text类型 22510.1.5 Comment类型 22810.1.6 CDATASection类型 22810.1.7 DocumentType类型 22910.1.8 DocumentFragment类型 22910.1.9 Attr类型 23010.2 DOM扩展 23110.2.1 呈现模式 23110.2.2 滚动 23210.2.3 children属性 23210.2.4 contains()方法 23310.2.5 操作内容 23410.3 DOM操作技术 23910.3.1 动态脚本 23910.3.2 动态样式 24110.3.3 操作表格 24210.3.4 使用NodeList 24510.4 小结 245第11章 DOM2和DOM3 24711.1 DOM变化 24711.1.1 针对XML命名空间的变化 24811.1.2 其他方面的变化 25011.2 样式 25411.2.1 访问元素的样式 25411.2.2 操作样式表 25811.2.3 元素大小 26111.3 遍历 26711.3.1 NodeIterator 26811.3.2 TreeWalker 27111.4 範围 27211.4.1 DOM中的範围 27211.4.2 IE中的範围 27911.5 小结 282第12章 事件 28312.1 事件流 28312.1.1 事件冒泡 28312.1.2 事件捕获 28412.1.3 DOM事件流 28512.2 事件处理程式(或事件侦听器) 28512.2.1 HTML事件处理程式 28612.2.2 DOM0级事件处理程式 28612.2.3 DOM2级事件处理程式 28712.2.4 IE事件处理程式 28812.2.5 跨浏览器的事件处理程式 28912.3 事件对象 29012.3.1 DOM中的事件对象 29112.3.2 IE中的事件对象 29312.3.3 跨浏览器的事件对象 29512.4 事件类型 29612.4.1 UI事件 29712.4.2 滑鼠事件 29712.4.3 键盘事件 30312.4.4 HTML事件 30712.4.5 变动事件 31212.4.6 专有事件 31612.4.7 移动Safari支持的事件 32512.5 记忆体和性能 32812.5.1 事件委託 32812.5.2 移除事件处理程式 33012.6 模拟事件 33112.6.1 DOM中的事件模拟 33112.6.2 IE中的事件模拟 33512.7 小结 336第13章 表单脚本 33713.1 表单 33713.1.1 提交表单 33813.1.2 重置表单 33813.1.3 表单栏位 33913.2 文本框脚本 34313.2.1 选择文本 34413.2.2 过滤输入 34713.2.3 自动切换焦点 35013.3 选择框脚本 35113.3.1 选择选项 35213.3.2 添加选项 35413.3.3 移除选项 35413.3.4 移动和重排选项 35513.4 表单序列化 35513.5 富文本编辑 35713.5.1 操作富文本 35813.5.2 富文本选区 35913.5.3 表单与富文本 36113.6 小结 361第14章 错误处理与调试 36314.1 浏览器错误报告 36314.1.1 Internet Explorer 36314.1.2 Firefox 36414.1.3 Safari 36614.1.4 Opera 36714.1.5 Chrome 36814.2 错误处理 36914.2.1 try-catch语句 36914.2.2 抛出错误 37214.2.3 错误(error)事件 37414.3 错误处理策略 37514.3.1 常见的错误类型 37514.3.2 区分致命错误和非致命错误 37914.3.3 把错误记录到伺服器 38014.4 调试技术 38114.4.1 将讯息记录到控制台 38114.4.2 将讯息记录到当前页面 38314.4.3 抛出错误 38414.5 常用的IE错误 38414.5.1 操作终止 38414.5.2 无效字元 38614.5.3 未找到成员 38614.5.4 未知运行时错误 38714.5.5 语法错误 38714.5.6 系统无法找到指定资源 38714.6 调试工具 38814.6.1 IE中的调试器 38814.6.2 Firebug 39214.6.3 Drosera 39614.6.4 Opera中的JavaScript调试器 39814.6.5 其他调试工具 40114.7 小结 401第15章 JavaScript与XML 40215.1 浏览器对XML DOM的支持 40215.1.1 DOM2级核心 40215.1.2 DOMParser类型 40315.1.3 XMLSerializer类型 40415.1.4 DOM3级载入和保存 40415.1.5 IE对XML的支持 40915.1.6 跨浏览器处理XML 41215.2 浏览器对XPath的支持 41415.2.1 DOM3级XPath 41415.2.2 IE中的XPath 41815.2.3 跨浏览器使用XPath 41915.3 浏览器对XSLT的支持 42115.3.1 IE中的XSLT 42115.3.2 XSLTProcessor类型 42515.3.3 跨浏览器使用XSLT 42715.4 小结 428第16章 E4X 42916.1 E4X的类型 42916.1.1 XML类型 42916.1.2 XMLList类型 43016.1.3 命名空间类型 43116.1.4 QName类型 43216.2 一般用法 43216.2.1 访问特性 43316.2.2 其他节点类型 43416.2.3 查询 43616.2.4 构建和操作XML 43716.2.5 解析和序列化 43916.2.6 命名空间 43916.3 其他变化 44116.4 全面启用E4X 44216.5 小结 442第17章 Ajax与JSON 44317.1 XHR对象 44317.1.1 XHR的用法 44517.1.2 HTTP头部信息 44617.1.3 GET请求 44817.1.4 POST请求 44817.1.5 浏览器差异 44917.1.6 安全 45117.2 跨域请求 45217.2.1 XDomainRequest对象 45217.2.2 跨域XHR 45417.3 JSON 45417.3.1 在Ajax中使用JSON 45617.3.2 安全 45817.4 小结 459第18章 高级技巧 46018.1 高级函式 46018.1.1 作用域安全的构造函式 46018.1.2 惰性载入函式 46218.1.3 函式绑定 46418.1.4 函式柯里化 46518.2 高级定时器 46718.2.1 重複的定时器 46918.2.2 Yielding Processes 47018.2.3 函式节流 47218.3 自定义事件 47418.4 拖放 47618.4.1 修缮拖动功能 47818.4.2 添加自定义事件 48018.5 小结 482第19章 客户端存储 48319.1 cookie 48319.1.1 限制 48319.1.2 cookie的成分 48419.1.3 JavaScript中的cookie 48519.1.4 子cookie 48719.1.5 关于cookie的思考 49119.2 IE用户数据 49119.3 DOM存储机制 49219.3.1 存储类型 49219.3.2 sessionStorage对象 49319.3.3 globalStorage对象 49419.3.4 localStorage对象 49519.3.5 StorageItem类型 49619.3.6 storage事件 49619.3.7 限制 49619.4 总结 497第20章 最佳实践 49820.1 可维护性 49820.1.1 什幺是可维护的代码 49820.1.2 代码约定 49820.2 鬆散耦合 50120.3 性能 50720.3.1 注意作用域 50820.3.2 选择正确方法 50920.3.3 最小化语句数 51320.3.4 最佳化DOM互动 51520.4 部署 51720.4.1 构建过程 51720.4.2 验证 51820.4.3 压缩 52020.5 小结 522第21章 未来的API 52321.1 选择器API 52321.1.1 querySelector()方法 52321.1.2 querySelectorAll()方法 52421.1.3 现今和未来的支持情况 52521.2 HTML5 52521.2.1 字元集属性 52521.2.2 类相关的增加 52621.2.3 自定义数据特性 52821.2.4 跨文档讯息传递 52821.2.5 媒体元素 52921.2.6 canvas元素 53221.2.7 离线支持 54021.2.8 历史的改变 54121.2.9 资料库存储 54121.2.10 拖放操作 54321.2.11 WebSocket类型 54621.2.12 HTML5的未来 54721.3 小结 547第22章 JavaScript的未来 54822.1 ECMAScript4/JavaScript2 54822.1.1 JavaScript1.5 54822.1.2 JavaScript1.6 55022.1.3 JavaScript1.7 55222.1.4 JavaScript1.8 55722.1.5 JavaScript1.9 55822.1.6 ECMAScript4提案 55922.1.7 变数类型 55922.1.8 函式 56122.1.9 类型定义 56322.1.10 类和接口 56522.1.11 接口 56922.1.12 继承 56922.1.13 命名空间 57122.1.14 包 57222.1.15 语言上的其他变更 57222.1.16 ECMAScript4的未来 57722.2 ECMAScript3.1 57722.2.1 对对象内部实现的变更 57822.2.2 静态对象方法 57822.2.3 本地的JSON支持 58522.2.4 Decimal 58622.2.5 用法子集 58922.2.6 ECMAScript3.1的未来 59022.3 小结 590附录A JavaScript库 591附录B JavaScript工具 595