题名:JavaScript 高级程序设计
作者:Nicholas C. Zakas著
出版年:2006
ISBN: 7-115-15209-8
分类号: TP312
中图分类: 程序语言、算法语言
译者: 曹力, 张欣
定价: 59.00元
页数: 670 页
出版社: 人民邮电出版社
装订: 简裝本

JavaScript最新经典教程 * Amazon超级畅销书 * AJAX程序员必备 <br /> <br /> 随着国内的计算机图书市场越来越细化,各类引进版和原创图书在各自领域内如雨后春笋般展露头角,各类“经典”和“圣经”横空出世。但是有一个领域内却一直遗留了大片空白,就是JavaScript类图书。除了O'Reilly的《JAVASCRIPT权威指南》之外,国内一直没有出现过特别优秀的同类图书。就在这时,Wrox的《Professional JavaScript for Web Developers》走进了我们的视野,中文名是《JAVASCRIPT高级程序设计》 <br /> <br />JavaScript是目前Web客户端开发的主要编程语言,也是Ajax的核心技术之一。本书从最早期Netscape浏览器中的JavaScript 开始讲起,直到当前它对XML和Web服务的具体支持,内容主要涉及JavaScript的语言特点、JavaScript与浏览器的交互、更高级的 JavaScript技巧,以及与在Web应用程序中部署JavaScript解决方案有关的问题,如错误处理、调试、安全性、优化/混淆化、XML和 Web服务,最后介绍应用所有这些知识来创建动态用户界面。 <br />本书适合有一定编程经验的开发人员阅读,也可作为高校相关专业课程的教材。 <br /> <br /> 新增DOM概念,如何实现正则表达式进行数据验证和字符串操作,把JavaScript联系到Web用户界面的事件处理方法; 数据验证、表排序和错误处理的方法等 <br /> <br />目录 <br /> <br />第1章 JavaScript是什么 1 <br />1.1 历史简述 1 <br />1.2 JavaScript实现 2 <br />1.2.1 ECMAScript 3 <br />1.2.2 DOM 5 <br />1.2.3 BOM 8 <br />1.3 小结 8 <br />第2章 ECMAScript基础 9 <br />2.1 语法 9 <br />2.2 变量 10 <br />2.3 关键字 12 <br />2.4 保留字 12 <br />2.5 原始值和引用值 13 <br />2.6 原始类型 13 <br />2.6.1 typeof运算符 14 <br />2.6.2 Undefined类型 14 <br />2.6.3 Null类型 15 <br />2.6.4 Boolean类型 15 <br />2.6.5 Number类型 15 <br />2.6.6 String类型 17 <br />2.7 转换 18 <br />2.7.1 转换成字符串 18 <br />2.7.2 转换成数字 19 <br />2.7.3 强制类型转换 20 <br />2.8 引用类型 22 <br />2.8.1 Object类 22 <br />2.8.2 Boolean类 23 <br />2.8.3 Number类 23 <br />2.8.4 String类 24 <br />2.8.5 instanceof运算符 28 <br />2.9 运算符 28 <br />2.9.1 一元运算符 28 <br />2.9.2 位运算符 32 <br />2.9.3 Boolean运算符 37 <br />2.9.4 乘性运算符 40 <br />2.9.5 加性运算符 41 <br />2.9.6 关系运算符 42 <br />2.9.7 等性运算符 43 <br />2.9.8 条件运算符 45 <br />2.9.9 赋值运算符 45 <br />2.9.10 逗号运算符 46 <br />2.10 语句 46 <br />2.10.1 if语句 46 <br />2.10.2 迭代语句 47 <br />2.10.3 有标签的语句 48 <br />2.10.4 break语句和continue语句 48 <br />2.10.5 with语句 50 <br />2.10.6 switch语句 50 <br />2.11 函数 51 <br />2.11.1 无重载 53 <br />2.11.2 arguments对象 53 <br />2.11.3 Function类 54 <br />2.11.4 闭包 56 <br />2.12 小结 57 <br />第3章 对象基础 58 <br />3.1 面向对象术语 58 <br />3.1.1 面向对象语言的要求 58 <br />3.1.2 对象的构成 59 <br />3.2 对象应用 59 <br />3.2.1 声明和实例化 59 <br />3.2.2 对象引用 59 <br />3.2.3 对象废除 59 <br />3.2.4 早绑定和晚绑定 60 <br />3.3 对象的类型 60 <br />3.3.1 本地对象 60 <br />3.3.2 内置对象 70 <br />3.3.3 宿主对象 75 <br />3.4 作用域 75 <br />3.4.1 公用、受保护和私有作用域 75 <br />3.4.2 静态作用域并非静态的 76 <br />3.4.3 关键字this 76 <br />3.5 定义类或对象 78 <br />3.5.1 工厂方式 78 <br />3.5.2 构造函数方式 80 <br />3.5.3 原型方式 80 <br />3.5.4 混合的构造函数/原型方式 81 <br />3.5.5 动态原型方法 82 <br />3.5.6 混合工厂方式 83 <br />3.5.7 采用哪种方式 84 <br />3.5.8 实例 84 <br />3.6 修改对象 86 <br />3.6.1 创建新方法 86 <br />3.6.2 重定义已有方法 87 <br />3.6.3 极晚绑定 88 <br />3.7 小结 88 <br />第4章 继承 89 <br />4.1 继承机制实例 89 <br />4.2 继承机制的实现 90 <br />4.2.1 继承的方式 90 <br />4.2.2 一个更实际的例子 96 <br />4.3 其他继承方式 100 <br />4.3.1 zInherit 100 <br />4.3.2 xbObjects 104 <br />4.4 小结 108 <br />第5章 浏览器中的JavaScript 109 <br />5.1 HTML中的JavaScript 109 <br />5.1.1 〈script/〉标签 109 <br />5.1.2 外部文件格式 110 <br />5.1.3 内嵌代码和外部文件 111 <br />5.1.4 标签放置 111 <br />5.1.5 隐藏还是不隐藏 113 <br />5.1.6 〈noscript/〉标签 113 <br />5.1.7 XHTML中的改变 114 <br />5.2 SVG中的JavaScript 116 <br />5.2.1 SVG基础 116 <br />5.2.2 SVG中的〈script/〉标签 117 <br />5.2.3 SVG中的标签放置 118 <br />5.3 BOM 119 <br />5.3.1 window对象 119 <br />5.3.2 document对象 130 <br />5.3.3 location对象 133 <br />5.3.4 navigator对象 135 <br />5.3.5 screen对象 136 <br />5.4 小结 137 <br />第6章 DOM基础 138 <br />6.1 什么是DOM? 138 <br />6.1.1 XML简介 138 <br />6.1.2 针对XML的API 141 <br />6.1.3 节点的层次 141 <br />6.1.4 特定语言的DOM 144 <br />6.2 对DOM的支持 145 <br />6.3 使用DOM 145 <br />6.3.1 访问相关的节点 145 <br />6.3.2 检测节点类型 146 <br />6.3.3 处理特性 147 <br />6.3.4 访问指定节点 148 <br />6.3.5 创建和操作节点 150 <br />6.4 HTML DOM特征功能 155 <br />6.4.1 让特性像属性一样 155 <br />6.4.2 table方法 156 <br />6.5 遍历DOM 158 <br />6.5.1 NodeIterator 158 <br />6.5.2 TreeWalker 163 <br />6.6 测试与DOM标准的一致性 165 <br />6.7 DOM Level 3 166 <br />6.8 小结 166 <br />第7章 正则表达式 167 <br />7.1 正则表达式支持 167 <br />7.1.1 使用RegExp对象 168 <br />7.1.2 扩展的字符串方法 169 <br />7.2 简单模式 170 <br />7.2.1 元字符 170 <br />7.2.2 使用特殊字符 170 <br />7.2.3 字符类 172 <br />7.2.4 量词 174 <br />7.3 复杂模式 177 <br />7.3.1 分组 177 <br />7.3.2 反向引用 178 <br />7.3.3 候选 179 <br />7.3.4 非捕获性分组 180 <br />7.3.5 前瞻 181 <br />7.3.6 边界 182 <br />7.3.7 多行模式 183 <br />7.4 理解RegExp对象 184 <br />7.4.1 实例属性 184 <br />7.4.2 静态属性 185 <br />7.5 常用模式 186 <br />7.5.1 验证日期 187 <br />7.5.2 验证信用卡号 188 <br />7.5.3 验证电子邮件地址 192 <br />7.6 小结 193 <br />第8章 检测浏览器和操作系统 194 <br />8.1 navigator对象 194 <br />8.2 检测浏览器的方式 194 <br />8.2.1 对象/特征检测法 194 <br />8.2.2 user-agent字符串检测法 195 <br />8.3 user-agent字符串简史 196 <br />8.3.1 Netscape Navigator 3.0与 IE3.0 196 <br />8.3.2 Netscape Communicator 4.0与IE 4.0 197 <br />8.3.3 IE 5.0及更高版本 198 <br />8.3.4 Mozilla 198 <br />8.3.5 Opera 200 <br />8.3.6 Safari 201 <br />8.3.7 结语 201 <br />8.4 浏览器检测脚本 201 <br />8.4.1 方法学 202 <br />8.4.2 第一步 202 <br />8.4.3 检测Opera 204 <br />8.4.4 检测Konqueror/Safari 206 <br />8.4.5 检测IE 208 <br />8.4.6 检测Mozilla 209 <br />8.4.7 检测Netscape Communicator 4.x 210 <br />8.5 平台/操作系统检测脚本 211 <br />8.5.1 方法学 211 <br />8.5.2 第一步 212 <br />8.5.3 检测Windows操作系统 212 <br />8.5.4 检测Macintosh操作系统 214 <br />8.5.5 检测Unix操作系统 214 <br />8.6 全部脚本 215 <br />8.7 例子:登录页面 219 <br />8.8 小结 224 <br />第9章 事件 225 <br />9.1 今天的事件 225 <br />9.2 事件流 226 <br />9.2.1 冒泡型事件 226 <br />9.2.2 捕获型事件 227 <br />9.2.3 DOM事件流 228 <br />9.3 事件处理函数/监听函数 229 <br />9.3.1 IE 230 <br />9.3.2 DOM 231 <br />9.4 事件对象 232 <br />9.4.1 定位 233 <br />9.4.2 属性/方法 233 <br />9.4.3 相似性 235 <br />9.4.4 区别 238 <br />9.5 事件的类型 240 <br />9.5.1 鼠标事件 240 <br />9.5.2 键盘事件 244 <br />9.5.3 HTML事件 246 <br />9.5.4 变化事件 251 <br />9.6 跨平台的事件 252 <br />9.6.1 EventUtil对象 252 <br />9.6.2 添加/删除事件处理函数 252 <br />9.6.3 格式化event对象 254 <br />9.6.4 获取事件对象 258 <br />9.6.5 示例 259 <br />9.7 小结 260 <br />第10章 高级DOM技术 261 <br />10.1 样式编程 261 <br />10.1.1 DOM样式的方法 263 <br />10.1.2 自定义鼠标提示 264 <br />10.1.3 可折叠区域 265 <br />10.1.4 访问样式表 266 <br />10.1.5 最终样式 270 <br />10.2 innerText和innerHTML 271 <br />10.3 outerText和outerHTML 273 <br />10.4 范围 274 <br />10.4.1 DOM中的范围 274 <br />10.4.2 IE中的范围 284 <br />10.4.3 范围在实际中的应用 288 <br />10.5 小结 288 <br />第11章 表单和数据完整性 289 <br />11.1 表单基础 289 <br />11.2 对〈form/〉元素进行脚本编写 291 <br />11.2.1 获取表单的引用 291 <br />11.2.2 访问表单字段 291 <br />11.2.3 表单字段的共性 292 <br />11.2.4 聚焦于第一个字段 292 <br />11.2.5 提交表单 293 <br />11.2.6 仅提交一次 294 <br />11.2.7 重置表单 295 <br />11.3 文本框 295 <br />11.3.1 获取/更改文本框的值 296 <br />11.3.2 选择文本 297 <br />11.3.3 文本框事件 298 <br />11.3.4 自动选择文本 298 <br />11.3.5 自动切换到下一个 299 <br />11.3.6 限制textarea的字符数 300 <br />11.3.7 允许/阻止文本框中的字符 301 <br />11.3.8 使用上下按键操作数字文本 306 <br />11.4 列表框和组合框 308 <br />11.4.1 访问选项 309 <br />11.4.2 获取/更改选中项 309 <br />11.4.3 添加选项 310 <br />11.4.4 删除选项 311 <br />11.4.5 移动选项 312 <br />11.4.6 重新排序选项 313 <br />11.5 创建自动提示的文本框 313 <br />11.5.1 匹配 314 <br />11.5.2 内部机制 314 <br />11.6 小结 316 <br />第12章 表格排序 317 <br />12.1 起点——数组 317 <br />12.2 对单列的表格排序 319 <br />12.2.1 比较函数 320 <br />12.2.2 sortTable()函数 320 <br />12.3 对多列表格进行排序 323 <br />12.3.1 比较函数生成器 323 <br />12.3.2 修改sortTable()方法 324 <br />12.3.3 逆序排列 325 <br />12.3.4 对不同的数据类型进行排序 327 <br />12.3.5 高级排序 330 <br />12.4 小结 334 <br />第13章 拖放 335 <br />13.1 系统拖放 335 <br />13.1.1 拖放事件 336 <br />13.1.2 数据传输对象dataTransfer 341 <br />13.1.3 dragDrop()方法 345 <br />13.1.4 优点及缺点 346 <br />13.2 模拟拖放 346 <br />13.2.1 代码 347 <br />13.2.2 创建放置目标 349 <br />13.2.3 优点及缺点 352 <br />13.3 zDragDrop 352 <br />13.3.1 创建可拖动元素 352 <br />13.3.2 创建放置目标 353 <br />13.3.3 事件 353 <br />13.3.4 例子 354 <br />13.4 小结 355 <br />第14章 错误处理 356 <br />14.1 错误处理的重要性 356 <br />14.2 错误和异常 357 <br />14.3 错误报告 358 <br />14.3.1 IE(Windows) 358 <br />14.3.2 IE(MacOS) 359 <br />14.3.3 Mozilla(所有平台) 359 <br />14.3.4 Safari(MacOS) 360 <br />14.3.5 Opera 7(所有平台) 361 <br />14.4 处理错误 362 <br />14.4.1 onerror事件处理函数 362 <br />14.4.2 try...catch语句 365 <br />14.5 调试技巧 370 <br />14.5.1 使用警告框 370 <br />14.5.2 使用Java控制台 371 <br />14.5.3 将消息写入JavaScript控制台 (仅限Opera 7+) 372 <br />14.5.4 抛出自定义错误 372 <br />14.5.5 JavaScript校验器 373 <br />14.6 调试器 374 <br />14.6.1 Microsoft Script Debugger 374 <br />14.6.2 Venkman 376 <br />14.7 小结 383 <br />第15章 JavaScript中的XML 384 <br />15.1 浏览器中的XML DOM支持 384 <br />15.1.1 IE中的XML DOM支持 384 <br />15.1.2 Mozilla中XML DOM支持 388 <br />15.1.3 通用接口 393 <br />15.2 浏览器中的XPath支持 403 <br />15.2.1 XPath简介 403 <br />15.2.2 IE中的XPath支持 404 <br />15.2.3 Mozilla中的XPath支持 404 <br />15.3 浏览器中的XSLT支持 408 <br />15.3.1 IE中的XSLT支持 410 <br />15.3.2 Mozilla中XSLT支持 413 <br />15.4 小结 415 <br />第16章 客户端与服务器端的通信 416 <br />16.1 cookie 416 <br />16.1.1 cookie的成分 416 <br />16.1.2 其他安全限制 417 <br />16.1.3 JavaScript中的cookie 417 <br />16.1.4 服务器端的cookie 419 <br />16.1.5 在客户端与服务器端之间传递cookie 422 <br />16.2 隐藏框架 423 <br />16.3 HTTP请求 426 <br />16.3.1 使用HTTP首部 428 <br />16.3.2 实现的复制品 429 <br />16.3.3 进行GET请求 430 <br />16.3.4 进行POST请求 430 <br />16.4 LiveConnect请求 431 <br />16.4.1 进行GET请求 431 <br />16.4.2 进行POST请求 433 <br />16.5 智能HTTP请求 435 <br />16.5.1 get()方法 435 <br />16.5.2 post()方法 438 <br />16.6 实际使用 439 <br />16.7 小结 439 <br />第17章 Web服务 440 <br />17.1 Web服务快速入门 440 <br />17.1.1 Web服务是什么? 440 <br />17.1.2 WSDL 441 <br />17.2 IE中的Web服务 443 <br />17.2.1 使用WebService组件 444 <br />17.2.2 WebService组件例子 445 <br />17.3 Mozilla中的Web服务 447 <br />17.3.1 加强的特权 447 <br />17.3.2 使用SOAP方法 448 <br />17.3.3 使用WSDL代理 451 <br />17.4 跨浏览器的方案 454 <br />17.4.1 WebService对象 454 <br />17.4.2 Temperature 服务 456 <br />17.4.3 使用TemperatureService对象 458 <br />17.5 小结 458 <br />第18章 与插件进行交互 459 <br />18.1 为何使用插件 459 <br />18.2 流行的插件 460 <br />18.3 MIME类型 460 <br />18.4 嵌入插件 461 <br />18.4.1 加入参数 461 <br />18.4.2 Netscape 4.x 462 <br />18.5 检测插件 462 <br />18.5.1 检测Netscape式插件 463 <br />18.5.2 检测ActiveX插件 467 <br />18.5.3 跨浏览器检测 469 <br />18.6 Java applet 470 <br />18.6.1 嵌入applet 470 <br />18.6.2 在JavaScript中引用applet 471 <br />18.6.3 创建applet 471 <br />18.6.4 JavaScript到Java的通信 472 <br />18.6.5 Java到JavaScript的通信 475 <br />18.7 Flash动画 477 <br />18.7.1 嵌入Flash动画 477 <br />18.7.2 引用Flash动画 478 <br />18.7.3 JavaScript到Flash的通信 478 <br />18.7.4 Flash到JavaScript通信 481 <br />18.8 ActiveX控件 483 <br />18.9 小结 485 <br />第19章 部署问题 486 <br />19.1 安全性 486 <br />19.1.1 同源策略 486 <br />19.1.2 窗口对象问题 487 <br />19.1.3 Mozilla特有的问题 488 <br />19.1.4 资源限制 490 <br />19.2 国际化 491 <br />19.2.1 使用JavaScript检测语言 491 <br />19.2.2 策略 492 <br />19.2.3 字符串的思考 492 <br />19.3 优化JavaScript 495 <br />19.3.1 下载时间 495 <br />19.3.2 执行时间 499 <br />19.4 知识产权的问题 512 <br />19.4.1 混淆 512 <br />19.4.2 Microsoft Script Encoder(仅IE) 513 <br />19.5 小结 514 <br />第20章 JavaScript的未来 515 <br />20.1 ECMAScript 4 515 <br />20.1.1 Netscape的提案 515 <br />20.1.2 实现 521 <br />20.2 ECMAScript for XML 522 <br />20.2.1 途径 522 <br />20.2.2 for each..in循环 524 <br />20.2.3 新的类 524 <br />20.2.4 实现 532 <br />20.3 小结 532 <br />索引

Nicholas C.Zakas世界知名的JavaScript专家和Web开发人员。Nicholas拥有丰富的Web开发和界面设计经验,曾经参与许多世界大公司的Web解决方案开发,并与他人合作撰写了畅销书《Ajax高级程序设计》。