商品参数 书 名:高级程序设计(第3版) 作 者:[美]Nicholas C. Zakas 著 李松峰, 曹力 译 出版社:人民邮电出版社 出版日期:2012-03 I S B N:9787115275790 页 码:730 版 次:1 装 帧:平装 开 本:16开 重 量:1145g 定 价:99.00元
目录 第1章 简介 1.1 简史 1.2 实现 1.2.1 ECMAScript 1.2.2 文档对象模型(DOM) 1.2.3 浏览器对象模型(BOM) 1.3 版本 1.4 小结 第2章 在HTML中使用 2.1 <*>元素 2.1.1 标签的位置 2.1.2 延迟脚本 2.1.3 异步脚本 2.1.4 在XHTML申的用法 2.1.5 不推荐使用的语法 2.2 嵌入代码与外部文件 2.3 文档模式 2.4 元素 2.5 小结 第3章 基本概念 3.1 语法 3.1.1 区分大小写 3.1.2 标识符 3.1.3 注释 3.1.4 严格模式 3.1.5 语句 3.2关键字和保留字 3.3 变量 3.4 数据类型 3.4.1 typeof操作符 3.4.2 Undefined类型 3.4.3 Null类型 3.4.4 Boolean类型 3.4.5 Number类型 3.4.6 String类型 3.4.7 0bj ect类型 3.5 操作符 3.5.1 一元操作符 3.5.2 位操作符 3.5.3 布尔操作符 3.5.4 乘性操作符 3.5.5 加性操作符 3.5.6 关系操作符 3.5.7 相等操作符 3.5.8 条件操作符 3.5.9赋值操作符 3.5.10 逗号操作符 3.6 语句 3.6.1 if语句 3.6.2 do—while语句 3.6.3 while语句 3.6.4 for语句 3.6.5 for—in语句 3.6.6 label语句 3.6.7 break和continue语句 3.6.8 with语句 3.6.9 switch语句 3.7 函数 3.7.1 理解参数 3.7.2 没有重载 3.8 小结 第4章 变量、作用域和内存问题 第5章 引用类型 第6章 面向对象的程序设计 第7章 函数表达式 第8章 BOM 第9章 客户端检测 第10章 DOM 第11章 DOM扩展 第12章 DOM2和DOM3 第13章 事件 第14章 表单脚本 第15章 使用Canvas绘图 第16章 HTML5脚本编程 第17章 错误处理与调试 第18章 GN xml 第19章 E4X 第20章 JSON 第21章 Ajax与Comet 第22章 高级技巧 第23章 离线应用与客户端存储 第24章 实践 第25章 新兴的API 附录A ECMAScript Harmony 附录B 严格模式 附录C Java Script库 附录D Java Script工具
在线试读 简介 本章内容 历史回顾 是什么 与ECMAScript的关系 的不同版本 avaScript诞生于1995年。当时,它的主要目的是处理以前由服务器端语言(如Perl)负责的一些输入验证操作。在问世之前,必须把表单数据发送到服务器端才能确定用户是否没有填写某个必填域,是否输入了无效的值。NetscapeNavigator希望通过来解决这个问题。在人们普遍使用电话拔号上网的年代,能够在客户端完成一些基本的验证任务绝对是令人兴奋的。毕竟,拨号上网的速度之慢,导致了与服务器的每一次数据交换事实上都成了对人们耐心的一次考验。 自此以后,逐渐成为市面上常见浏览器必备的一项特色功能。如今,的用途早已不再局限于简单的数据验证,而是具备了与浏览器窗口及其内容等几乎所有方面交互的能力。今天的已经成为一门功能全面的编程语言,能够处理复杂的计算和交互,拥有了闭包、匿名(lamda,拉姆达)函数,甚至元编程等特性。作为Web的一个重要组成部分,的重要性是不言而喻的,就连手机浏览器,甚至那些专为残障人士设计的浏览器等非常规浏览器都支持它。当然,微软的例子更为典型。虽然有自己的客户端脚本语言VBScript,但微软仍然在InternetExplorer的早期版本中加入了自己的实现 。 从一个简单的输入验证器发展成为一门强大的编程语言,完全出乎人们的意料。应该说,它既是一门非常简单的语言,又是一门非常复杂的语言。说它简单,是因为学会使用它只需片刻功夫;而说它复杂,是因为要真正掌握它则需要数年时间。要想全面理解和掌握,关键在于弄清楚它的本质、历史和局限性。
内容介绍 《高级程序设计(第3版)》是超级畅销书的新版。ECMAScript5和HTML5在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为增添了很多适应未来发展的新特性。《高级程序设计》这一版除增加5章全新内容外,其他章节也有较大幅度的增补和修订,新内容篇幅约占三分之一。全书从语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax与Comet服务器端通信,HTML5表单、媒体、Canvas(包括WebGL)及WebWorkers、地理定位、跨文档传递消息、客户端存储(包括IndexedDB)等新API,还介绍了离线应用和与维护、性能、部署相关的开发实践。《高级程序设计(第3版)》附录展望了未来的API和ECMAScriptHarmony规范。 《高级程序设计(第3版)》适合有一定编程经验的Web应用开发人员阅读,也可作为高校及社会实用技术培训相关专业课程的教材。
细节图
作者介绍 Nicholas C. Zakas(尼古拉斯?泽卡斯)世界Web技术专家,现为雅虎公司界面呈现架构师,负责MyYahoo!和雅虎首页等大访问量站点的设计。尼古拉斯拥有丰富的Web开发和界面设计经验,曾经参与许多世界大公司的Web解决方案开发。他还是HighPerformance 一书的作者,并与他人合作撰写了Professional Ajax和Even FasterWebSites。尼古拉斯拥有梅里马克学院计算机科学学士学位和埃迪柯特学院的MBA学位。他的个人网站是www.nczonline.net,他的Twitter别名是@slicknet。
探索现代 Web 应用的基石:一款全面深入的 JavaScript 编程指南 在这个数字浪潮席卷一切的时代,Web 应用已不再是简单的信息展示平台,而是集交互性、动态性、智能化于一身的复杂生态系统。而驱动这一切核心动力的,正是 ubiquitous 的 JavaScript 语言。它从最初的网页脚本语言,一路进化,如今已成为前端开发、后端开发、移动开发乃至桌面应用开发不可或缺的利器。如果您渴望掌握这一强大的工具,深入理解其内在机制,并能自如地构建出令人惊叹的 Web 应用,那么,这本书将是您不容错过的旅程起点。 本书并非仅仅罗列语法规则,而是致力于为您构建一个完整、深入的 JavaScript 知识体系。它将带领您从 JavaScript 的基础概念出发,一步步迈入其精妙而复杂的进阶领域。通过对语言核心特性的详尽剖析,您将能够深刻理解 JavaScript 的工作原理,从而摆脱“知其然,不知其所以然”的尴尬境地,真正做到游刃有余。 从零开始,稳固根基:语言基础的再审视 许多开发者可能已经接触过 JavaScript,但对一些基础概念的理解可能停留在表面。本书将重新审视并深入讲解 JavaScript 的核心基础,确保您的根基稳固。我们将从变量、数据类型(包括原始类型和引用类型)、运算符、流程控制语句(如条件语句和循环语句)等方面入手,但这绝非简单的语法回顾。我们将着重强调这些基础概念在实际开发中的意义和最佳实践。例如,我们会深入探讨 JavaScript 中“值传递”与“引用传递”的区别,这对于理解对象和数组的操作至关重要,避免因误解而产生的潜在 Bug。 此外,函数作为 JavaScript 的一级公民,其重要性不言而喻。本书将详细讲解函数的声明、调用、参数传递,并深入探讨作用域(包括全局作用域、函数作用域、块级作用域)和闭包。闭包是 JavaScript 中一个强大而又容易被误解的概念,我们将通过大量实例,剖析闭包的工作原理,以及它在实现数据封装、模块化开发等方面的广泛应用。您将学会如何利用闭包来创建私有变量,构建更健壮、可维护的代码。 掌握异步编程的艺术:应对现代 Web 的挑战 现代 Web 应用的核心在于其交互性和实时性,而这一切都离不开异步编程。JavaScript 的单线程模型在处理大量 I/O 操作时,如果采用同步方式,将导致页面阻塞,用户体验急剧下降。本书将系统地讲解 JavaScript 中的异步编程模型,包括回调函数、Promise、async/await 等。 回调函数是异步编程的早期实现方式,但其嵌套过深易导致“回调地狱”。本书将分析回调函数的优缺点,并引导您如何优化回调的使用。接着,我们将重点介绍 Promise,它提供了一种更优雅、更可读的方式来处理异步操作。您将学会如何创建、链式调用 Promise,以及如何利用 `Promise.all()`、`Promise.race()` 等方法来管理多个并发的异步任务。 最后,async/await 语法糖的出现,极大地简化了异步编程的编写和理解。本书将深入讲解 async/await 的工作机制,展示如何通过它来编写出如同同步代码般简洁易懂的异步逻辑,从而大幅提升开发效率和代码质量。理解并熟练运用异步编程,将是您构建高性能、响应迅速的 Web 应用的关键。 精通面向对象与原型链:理解 JavaScript 的内在逻辑 JavaScript 是一种多范式语言,它支持面向对象编程,但其实现方式与传统的基于类的语言有所不同,而是基于原型链。本书将花费大量篇幅深入讲解 JavaScript 的原型链机制。您将理解每个对象都拥有一个内部链接指向另一个对象,这就是原型。当您尝试访问一个对象的属性或方法时,如果该对象本身没有,JavaScript 引擎就会沿着原型链向上查找,直到找到为止,或者到达链的末端(null)。 我们将详细讲解构造函数、原型对象、实例对象之间的关系。您将学会如何通过原型继承来复用代码,以及如何使用 `Object.create()`、`instance.__proto__`、`Constructor.prototype` 等方式来操作原型链。理解原型链是掌握 JavaScript 对象模型,实现代码复用和继承的基石。此外,本书还将探讨 ES6 引入的类(class)语法糖,并解释它在底层是如何映射到原型链的,让您在享受类语法的便利时,依然能深刻理解其背后的原理。 深入探索现代 JavaScript 特性:拥抱 ES6+ 的强大功能 随着 ECMAScript 标准的不断更新,JavaScript 语言本身也在飞速发展,涌现了大量令人兴奋的新特性。本书将紧跟时代步伐,深入讲解 ES6 (ECMAScript 2015) 及之后版本引入的关键特性。 您将学习到: 箭头函数 (Arrow Functions): 它们简洁的语法以及与 `this` 绑定的独特行为。 模板字符串 (Template Literals): 轻松实现字符串插值和多行字符串。 解构赋值 (Destructuring Assignment): 方便地从数组和对象中提取数据。 新的数据结构: `Set` 和 `Map`,以及它们在处理集合和键值对时的优势。 展开运算符 (Spread Operator) 和剩余参数 (Rest Parameters): 灵活地处理数组和函数参数。 模块化 (Modules): 使用 `import` 和 `export` 来组织和复用代码,构建大型项目。 Promises 相关的改进: 进一步理解 `Promise.prototype.finally()`。 迭代器 (Iterators) 和生成器 (Generators): 实现自定义的迭代逻辑,处理复杂的数据流。 Proxy 和 Reflect: 提供更强大的元编程能力,实现对象行为的拦截和自定义。 掌握这些现代 JavaScript 特性,将极大地提升您的编码效率,并使您的代码更加简洁、易读、易维护。 理解 JavaScript 的运行机制:深入浏览器与 Node.js 环境 JavaScript 的强大之处在于其跨平台运行的能力,尤其是在浏览器环境中,它负责动态交互,而在 Node.js 环境下,它又可以作为服务器端语言。本书将为您揭示 JavaScript 在不同环境下的运行机制。 在浏览器环境中,我们将探讨事件循环(Event Loop)、调用栈(Call Stack)、宏任务队列(Macrotask Queue)和微任务队列(Microtask Queue)的概念。理解这些概念是掌握 JavaScript 异步编程和避免性能问题的关键。您将明白为什么某些异步操作会以特定的顺序执行,以及如何利用这些知识来优化您的 Web 应用性能。 在 Node.js 环境下,我们将介绍其核心模块、非阻塞 I/O 模型以及事件驱动架构。您将了解如何利用 Node.js 来构建高性能的服务器端应用,处理文件系统操作、网络通信等。 掌握调试与测试的最佳实践:保障代码质量 再精妙的代码也难免出现 Bug。本书将引导您掌握有效的 JavaScript 调试技巧,包括使用浏览器开发者工具(如 Chrome DevTools)、设置断点、单步执行、查看变量值、分析调用栈等。 同时,代码测试是保证软件质量的重要环节。我们将介绍单元测试、集成测试等概念,并介绍一些流行的 JavaScript 测试框架(如 Jest、Mocha 等)的使用方法。通过学习如何编写和运行测试,您将能够尽早发现并修复 Bug,提高代码的健壮性和可维护性。 构建健壮、可维护的应用程序:设计模式与最佳实践 拥有扎实的基础和精湛的技巧固然重要,但如何将这些能力转化为高效、可维护的应用程序,则需要引入设计模式和最佳实践。本书将介绍一些在 JavaScript 开发中常用的设计模式,如单例模式、工厂模式、观察者模式、模块模式等。通过学习和应用这些设计模式,您可以更好地组织代码结构,解决常见的编程问题,并使您的代码更具可扩展性和可维护性。 此外,本书还将强调编写清晰、规范、易于理解的代码的重要性。我们将讨论命名约定、代码风格、错误处理策略、代码重构等方面的内容,帮助您养成良好的编程习惯。 展望未来:踏上持续学习的征程 JavaScript 生态系统日新月异,新的框架、库和工具层出不穷。本书的最终目的,是为您打下坚实的基础,让您能够自信地迎接未来的技术挑战。掌握了本书所涵盖的知识,您将不再局限于某个特定的框架或库,而是能够融会贯通,快速学习和掌握新的技术。 无论您是初涉编程的新手,还是希望提升技能的资深开发者,本书都将是您在 JavaScript 之旅中不可或缺的伙伴。它将引导您深入理解这门语言的精髓,赋予您构建现代 Web 应用的强大能力。现在,就让我们一起踏上这段充满挑战与惊喜的 JavaScript 探索之旅吧!
这本《JavaScript高级程序设计》给我的整体感受是,它非常注重“理解”而非“记忆”。很多时候,我们在学习编程时,容易陷入死记硬背API的误区,但这本书则引导我们去思考“为什么是这样”,以及“这样做的好处是什么”。作者在解释一些核心概念时,会追溯到JavaScript语言的设计哲学,以及它在不同场景下的应用。比如,讲到作用域和闭包的时候,它并没有简单地给出定义,而是从代码执行上下文的创建和销毁过程入手,解释了为什么会出现变量访问的限制,以及闭包如何能够“记住”它被创建时的环境。这种深度讲解让我对JavaScript的理解上升了一个层次,不再是停留在表面的语法操作。而且,书中对ES6及以后版本新特性的介绍也相当到位,不仅仅是列举了新语法,更重要的是解释了这些新特性是为了解决什么问题而诞生的,以及它们如何简化我们的开发流程。这让我感觉这本书紧跟时代潮流,非常实用。