登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書

『簡體書』O'Reilly:JavaScript经典实例(第三版)

書城自編碼: 3792659
分類:簡體書→大陸圖書→工業技術電工技術
作者: [美]亚当·D.斯科特,[美]马修·麦克唐纳,[美]雪莉·鲍
國際書號(ISBN): 9787519869601
出版社: 中国电力出版社
出版日期: 2022-09-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:HK$ 174.6

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
中世纪英国的财政、军事与外交(中外文明传承与交流研究书系)
《 中世纪英国的财政、军事与外交(中外文明传承与交流研究书系) 》

售價:HK$ 93.6
缺席者的历史:以色列十个遗失的部落
《 缺席者的历史:以色列十个遗失的部落 》

售價:HK$ 93.6
晚清洋务运动始末
《 晚清洋务运动始末 》

售價:HK$ 95.8
美索不达米亚神话
《 美索不达米亚神话 》

售價:HK$ 83.8
别害怕吵架:教孩子在冲突中学会正向沟通
《 别害怕吵架:教孩子在冲突中学会正向沟通 》

售價:HK$ 58.8
这个甜甜圈不能卖:奇思妙想爆笑绘本(全2册)
《 这个甜甜圈不能卖:奇思妙想爆笑绘本(全2册) 》

售價:HK$ 95.8
生活中的民法典实用全书:应知应懂的法律常识
《 生活中的民法典实用全书:应知应懂的法律常识 》

售價:HK$ 106.8
饲渊
《 饲渊 》

售價:HK$ 47.8

 

編輯推薦:
为什么每次遇到JavaScript问题都要从头思索一番呢?这本经典实例充满各种常见编程任务的秘籍,还有构建可在任何浏览器中运行的应用所需的技术。本书给出的代码示例几乎可以直接用到任何项目中,而且你将学到更多的 JavaScript知识。
內容簡介:
书中的经典实例使用ECMAScript 2020及后续版本的最新特性,而且使用现代 JavaScript编程标准。阅读本书将学到以下知识。
设置一个高效的开发环境,包含代码编辑器、lint 程序和测试服务器。提高对 JavaScript 函数的理解,包括箭头句法、闭包和生成器。运用面向对象编程概念,例如类和继承。在 JavaScript 中处理富媒体,包括音频、视频和 SVG。处理 HTML 标记和 CSS 样式。借助 Node.js 在任何地方使用 JavaScript。使用 REST、GraphQL 和 fetch 访问及处理远程数据。上手使用流行的应用构建框架 Express。使用 promise、async/await和Web职程执行异步操作。
關於作者:
Adam D. Scott是工程主管、Web 开发者和教育工作者,住在美国康涅狄格州。他的职业生涯横跨技术和教育两个行业,摸爬滚打已经超过十年。他教授和编写了一系列技术主题课程。
Matthew MacDonald是一名科技作家,著作等身,涵盖编程、Web设计和自然界最奇特的计算工具——人类大脑。
Shelley Powers从事 Web 技术工作和写作已经超过 25 年了。她写的第一本JavaScript方面的书于1996年出版。最近由 O’Reilly 出版的图书主要关注 JavaScript和Node。
目錄
目录
前言 .1
第一部分 JavaScript 语言
第1 章 搭建开发环境 9
1.1 选择代码编辑器 10
1.2 使用浏览器中的开发者控制台 . 12
1.3 在开发者控制台中运行代码块 . 16
1.4 使用严格模式捕获常见错误 18
1.5 使用Emmet 快捷键填充HTML 样板代码 . 21
1.6 安装npm 包管理器(及 Node.js) . 23
1.7 使用npm 下载包 . 25
1.8 使用npm 更新包 . 30
1.9 设置本地测试服务器 . 31
1.10 使用lint 工具实施代码标准 35
1.11 使用格式化工具保持代码风格一致 . 40
1.12 在JavaScript Playground 中试验 42
第2 章 字符串和正则表达式 47
2.1 检查字符串存在,不为空 48
2.2 把数值转换为格式化字符串 50
2.3 插入特殊字符 53
2.4 插入表情符号 55
2.5 使用模板字面量简化字符串拼接 56
2.6 不区分大小写比较字符串 58
2.7 检查字符串中是否包含指定的子串 60
2.8 替换字符串出现的每一处 61
2.9 把HTML 标签替换为具名实体 62
2.10 使用正则表达式替换字符串中的模式 63
2.11 从字符串中提取列表 67
2.12 查找满足模式的所有内容 . 68
2.13 删除字符串头尾的空白 . 72
2.14 把字符串的第一个字母转换为大写 . 73
2.15 验证电子邮件地址 75
第3 章 数字 77
3.1 生成随机数 . 77
3.2 生成密码学上安全的随机数 79
3.3 四舍五入到指定的小数位 81
3.4 保留小数的精确度 82
3.5 把字符串转换成数字 . 84
3.6 把十进制转换成十六进制 86
3.7 角度和弧度互相转换 . 87
3.8 计算圆弧的长度 88
3.9 使用BigInt 处理特别大的数 . 89
第4 章 日期 92
4.1 获取当前日期和时间 . 92
4.2 把字符串转换成日期 . 94
4.3 在日期上增加天数 96
4.4 比较日期及测试日期是否相同 . 97
4.5 计算两个日期之间的时间间隔 . 99
4.6 把日期值格式化为字符串 . 102
第5 章 数组 105
5.1 检查一个对象是不是数组 . 106
5.2 迭代数组中的所有元素 . 106
5.3 检查两个数组是否相等 . 109
5.4 把数组拆散成单独的变量 . 112
5.5 把数组传给接受一组值的函数 113
5.6 克隆数组 114
5.7 合并两个数组 . 117
5.8 按位置复制数组的一部分 . 119
5.9 提取符合指定条件的数组元素 120
5.10 清空数组 . 121
5.11 去除重复的值 122
5.12 展平二维数组 123
5.13 在数组中搜索完全匹配的元素 125
5.14 在数组中搜索满足指定条件的元素 127
5.15 删除或替换数组元素 128
5.16 按属性值排序对象数组 130
5.17 变换数组中的每一个元素 132
5.18 一次计算合并数组中的全部值 132
5.19 验证数组内容 134
5.20 创建没有重复值的集合 136
5.21 创建使用键索引的元素集合 . 137
第6 章 函数 140
6.1 把一个函数作为参数传给另一个函数 140
6.2 使用箭头函数 . 144
6.3 为参数提供默认值 148
6.4 定义接受无限参数的函数 . 149
6.5 使用具名函数参数 150
6.6 定义在闭包中存储状态的函数 153
6.7 定义可产出多个值的生成器函数 . 155
6.8 使用部分应用技术减少冗余 160
6.9 使用函数绑定修正this 163
6.10 实现递归算法 167
第7 章 对象 170
7.1 检查对象的类型 170
7.2 使用对象字面量打包数据 . 173
7.3 检查对象中有没有某个属性 176
7.4 迭代对象的所有属性 178
7.5 测试空对象 180
7.6 合并两个对象的属性 182
7.7 定制定义属性的方式 183
7.8 阻止修改对象 . 186
7.9 使用代理截取并改变对象上的操作 . 188
7.10 克隆对象 . 191
7.11 深拷贝对象 193
7.12 创建绝对唯一的对象属性键 . 196
7.13 使用Symbol 创建枚举 . 198
第8 章 类 . 201
8.1 创建一个可重用的类 201
8.2 为类添加属性 . 205
8.3 为类提供更好的字符串表示形式 . 211
8.4 使用构造函数模式自定义类 213
8.5 让类中的方法支持串联 . 216
8.6 为类添加静态方法 218
8.7 使用静态方法创建对象 . 221
8.8 从其他类继承功能 223
8.9 使用模块组织JavaScript 类 . 228
第9 章 异步编程 233
9.1 在循环中更新页面 234
9.2 使用返回promise 的函数 . 237
9.3 改造基于回调的异步函数,使用promise 240
9.4 并发执行多个promise 244
9.5 使用await 和async 等待promise 结束 247
9.6 创建异步生成器函数 252
9.7 使用Web 职程执行后台任务 255
9.8 为Web 职程添加进度支持 258
第10 章 错误和测试 262
10.1 捕获并压制错误 262
10.2 捕获不同类型的错误 265
10.3 捕获异步错误 267
10.4 检测未处理的错误 . 269
10.5 抛出标准错误 273
10.6 抛出自定义错误 275
10.7 为代码编写单元测试 277
10.8 跟踪测试代码覆盖率 284
第二部分 浏览器中的JavaScript
第11 章 浏览器工具 . 291
11.1 调试JavaScript 291
11.2 分析运行时性能 293
11.3 找出未使用的JavaScript 代码 . 296
11.4 使用Lighthouse 衡量最佳实践 297
第12 章 处理HTML 301
12.1 获取指定的元素,查找它的父元素和子元素 301
12.2 使用forEach() 遍历querySelectorAll() 获取的结果 . 304
12.3 为元素添加点击功能 305
12.4 查找具有同一属性的全部元素 307
12.5 获取所有特定类型的元素 308
12.6 使用Selectors API 查找所有子元素 . 311
12.7 修改元素的类值 312
12.8 设置元素的样式属性 313
12.9 为新段落添加文本 . 316
12.10 把新元素插入DOM 的特定位置 . 318
12.11 检查有没有勾选复选框 . 319
12.12 对HTML 表格中的值求和 . 320
12.13 删除HTML 表格中的行 324
12.14 隐藏页面中的部分内容 326
12.15 创建悬停弹出信息窗口 328
12.16 验证表单数据 331
12.17 突出显示表单错误并符合无障碍功能要求 . 334
12.18 保障自动更新区域的无障碍功能 . 341
第13 章 获取远程数据 343
13.1 使用Fetch API 请求远程数据 343
13.2 使用XMLHttpRequest . 348
13.3 提交表单 . 350
13.4 从服务器获取数据填充选择列表 354
13.5 解析返回的JSON 359
13.6 获取及解析XML 361
13.7 发送二进制数据,载入图像 . 363
13.8 跨域共享HTTP cookie 364
13.9 使用Websockets 在客户端和服务器之间建立双向通信 . 366
13.10 长时间轮询远程数据源 368
第14 章 数据持久化 371
14.1 使用cookie 持久存储信息 . 371
14.2 使用sessionStorage 在客户端存储数据 375
14.3 使用localStorage 在客户端存储数据 381
14.4 使用IndexedDB 在客户端持久存储大段数据 . 385
14.5 借助代码库简化IndexedDB 操作 389
第15 章 处理媒体文件 394
15.1 为SVG 添加JavaScript 代码 394
15.2 在网页脚本中访问SVG . 398
15.3 使用D3 库创建一个SVG 条形图 400
15.4 在HTML 中集成SVG 和画布元素 404
15.5 音频文件开始播放时运行一个例程 406
15.6 使用JavaScript 控制video 元素 . 408
第16 章 编写Web 应用 . 412
16.1 打包JavaScript 412
16.2 JavaScript 和移动Web . 415
16.3 编写渐进式Web 应用 417
16.4 测试和剖析渐进式Web 应用 426
16.5 获取当前URL 的值 430
16.6 重定向URL 432
16.7 把文本复制到用户的剪贴板 . 433
16.8 在桌面浏览器中实现类似移动设备的通知 435
16.9 在浏览器中加载本地文件 439
16.10 使用Web 组件扩展可能性 442
16.11 选择前端框架. 446
第三部分 Node.js
第17 章 Node 基础 . 451
17.1 使用Node Version Manager 管理Node 版本 451
17.2 响应简单的浏览器请求 454
17.3 使用REPL 以交互的方式尝试Node 代码片段 457
17.4 读写文件数据 460
17.5 通过终端获取输入 . 466
17.6 获取当前脚本的路径 469
17.7 使用Node 计时器,理解Node 事件循环 470
第18 章 Node 模块 . 476
18.1 通过npm 搜索特定的Node 模块 477
18.2 把库转换成Node 模块. 478
18.3 让代码支持多个模块环境 480
18.4 创建可以安装的Node 模块 484
18.5 编写跨平台库 490
18.6 对模块做单元测试 . 495
第19 章 管理Node . 499
19.1 使用环境变量 499
19.2 管理回调地狱 501
19.3 在Node 应用中调取命令行功能 . 505
19.4 传递命令行参数 508
19.5 借助Commander 创建命令行实用程序 509
19.6 让Node 实例保持运行. 512
19.7 在本地开发过程中监控应用变化,适时重启 514
19.8 定期运行重复性任务 516
19.9 测试WebSockets 应用的性能和功能 518
第20 章 远程数据 . 520
20.1 获取远程数据 520
20.2 屏幕爬取 . 522
20.3 通过REST 式API 获取JSON 格式数据 524
第21 章 使用Express 构建Web 应用 . 528
21.1 使用Express 响应请求 528
21.2 使用 Express-Generator 532
21.3 路由 539
21.4 使用OAuth 541
21.5 使用Passport.js 进行OAuth 2 用户验证 551
21.6 伺服格式化数据 557
21.7 构建一个REST 式API 559
21.8 构建一个GraphQL API 563
內容試閱
前言
坐下身来撰写本书最新版时,我仔细思索了一番书名中对“食谱”的借喻。一本食谱怎样才能称为优秀呢?翻开餐厅书架上的几本食谱,我发现最得我心的食谱不仅展示了美食做法,还饱含作者潜心钻研总结出的秘诀。一本好的食谱不会教你勃艮第红酒炖牛肉的每一种做法,而是指出作者认为最合适的烹饪技法,通常再附带一些好的建议。本书作者正是立足于此,编写了一系列JavaScript 食谱。书中给出的建议来自三位经验丰富的专家,虽然中肯,但毕竟是一家之言。如果换几位开发者,也能写出这样一本书,只是内容不同罢了。
JavaScript 已经发展成一门功能强大的多用途编程语言。拥有这样一本经典实例集,你可以解决遇到的各种问题,甚至还可以自己开始编写食谱。
读者对象
为了涵盖如今JavaScript 涉及的方方面面,笔者不得不设定一个前提:这不是一本针对编程新手的书。市面上有很多优秀的书籍和教程,面向想通过JavaScript 学习编程的读者。笔者将本书的目标读者设为“实践开发人员”,即希望使用JavaScript解决特定问题和挑战的人。
如果你大致学了几个月JavaScript,自己动手尝试过Node 或Web 开发,应该能从本书内容中获益良多。此外,如果你是一名开发人员,不过主要使用其他编程语言,但是偶尔也会用到JavaScript,可以把本书当作一份参考指南。最后,如果你已经从事JavaScript 开发工作,有时会对某些语言特性产生困惑,可以把本书当作一本解疑手册。
内容编排
本书读者分为两类。第一类从头读到尾,在阅读的过程中收获一些有用的知识。第二类根据面对的具体挑战或问题,有选择地翻阅。本书内容采用特殊的编排方式,力求兼顾两类读者的需求。本书分为三部分。
? 第一部分涵盖JavaScript 编程语言自身层面上的经典实例。
? 第二部分涵盖JavaScript 的自然栖息环境,即浏览器。
? 第三部分通过Node.js 的视角具体研讨 JavaScript。
书中的每一章由多个经典实例构成。一个经典实例分为以下几部分。
问题
定义JavaScript 开发中可能遇到的情况。
方案
问题的解决方案,附有代码示例和简短说明。
讨论
深入探讨代码示例和技术手法。
此外,有些经典实例还有一个“参考”小结,列出推荐的延伸阅读资料,或者再有一个“扩展”小结,讲解额外的技术。
排版约定
本书采用下述排版约定。
斜体
表示新术语、URL、电子邮件地址、文件名和扩展名。
加粗斜体
表示要在用户界面中选择或点击的菜单项或按钮。
等宽字体(Constant Width)
表示广义上的计算机代码,包括命令、数组、元素、语句、选项、开关参数、变量、属性、键、函数、类型、类、命名空间、方法、模块、特性、参数、值、对象、事件、事件处理程序、XML标签、HTML 标签、宏、文件的内容,以及命令的输出。
加粗等宽字体(Constant Width Bold)
表示应由用户原封不动输入的命令或其他文本。
倾斜等宽字体(Constant Width Italic)
表示应替换为用户提供的值,或者应由上下文确定的值。
为了方便你找到可能有用的在线信息,书中会提到一些网站和网页。通常,网页的地址(URL)和标题(网页标题或内容标题)都会给出。有些地址相对复杂,在搜索引擎中搜索标题可能更容易找到相关网页。如果网页的URL 发生变化,导致找不到相关网页,也可自行搜索,说不定标题没变。
使用代码示例
本书的补充材料( 代码示例、练习题等) 可到https://github.com/javascripteverywhere/cookbook 下载。
本书是要帮你完成工作的。一般来说,如果本书提供了示例代码,你可以把它用到你的程序或文档中。除非你使用了很大一部分代码,否则无须联系我们获得许可。
比如,用书中的几个代码片段写一个程序就无须获得许可,销售或分发O’Reilly 旗下书中的示例则需要获得许可;引用书中的示例代码回答问题无须获得许可,将书中大量的代码放到你的产品文档中则需要获得许可。
我们很希望但并不强制要求你在引用本书内容时加上引用说明。引用说明一般包括书名、作者、出版社和ISBN,比如:“JavaScript Cookbook, Third Edition, by Adam D.Scott, Matthew MacDonald, and Shelley Powers. Copyright 2021 Adam D. Scott and Matthew MacDonald, 978-1-492-05575-4”。
如果你觉得自己对示例代码的使用超出了上述许可范围,请通过permissions@oreilly.com 与我们联系。
O’Reilly 在线学习平台(O’Reilly Online Learning)
近40 年来,O’Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O’Reilly 的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O’Reilly 和200 多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http://oreilly.com。
联系我们
请把对本书的评价和问题发给出版社。
美国:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
勘误、示例和其他信息可访问https://oreil.ly/js-cookbook-3e 获取。
对本书的评论或技术疑问,可以发电子邮件到errata@oreilly.com.cn。
欲了解本社图书和课程的新闻和信息,请访问我们的网站http://oreilly.com。
我们的Facebook:http://facebook.com/oreilly。
我们的Twitter:http://twitter.com/oreillymedia。
我们的YouTube:http://www.youtube.com/oreillymedia。
致谢
这是本书的第三版。前两版的作者是Shelley Powers。这一版由Adam Scott 和Matthew MacDonald 撰写和更新。Adam 和Matthew 要感谢Angela Rufino 和Jennifer Pollock 两位编辑,感谢二位的指引,度过重重难关,使这个项目顺利完成;感谢Sarah Wachs、Schalk Neethling 和Elisabeth Robson 三位技术审校,感谢他们敏锐的洞察力和有用的建议。Adam 还要感谢John Paxton,感谢他对这一版草稿提供的支持和见解。
Shelley 要感谢Simon St. Laurent 和Brian McDonald 两位编辑,以及Dr. Axel Rauschmayer 和Semmy Purewal 两位技术审校。
三位作者共同感谢O’Reilly 产品组员工,感谢他们无尽的帮助和支持。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.