成功加入购物车

去购物车结算 X
闲暇一卷书的书店
  • JavaScript编程精解(原书第2版)
  • JavaScript编程精解(原书第2版)
图文详情
  • JavaScript编程精解(原书第2版)
  • JavaScript编程精解(原书第2版)

JavaScript编程精解(原书第2版)

举报

正版全新

  • 作者: 
  • 出版社:    机械工业出版社
  • ISBN:    9787111518600
  • 出版时间: 
  • 装帧:    其他
  • 开本:    16开
  • 纸张:    胶版纸
  • 页数:    325页
  • 作者: 
  • 出版社:  机械工业出版社
  • ISBN:  9787111518600
  • 出版时间: 
  • 装帧:  其他
  • 开本:  16开
  • 纸张:  胶版纸
  • 页数:  325页

售价 56.24 7.1折

定价 ¥79.00 

品相 全新

优惠 满包邮

优惠 满减券
    运费
    本店暂时无法向该地区发货

    延迟发货说明

    时间:
    说明:

    上书时间2024-05-16

    数量
    库存3
    微信扫描下方二维码
    微信扫描打开成功后,点击右上角”...“进行转发

    卖家超过10天未登录

    三年老店
    店铺等级
    资质认证
    90天平均
    成功完成
    84.82% (120笔)
    好评率
    99.9%
    发货时间
    19.12小时
    地址
    浙江省杭州市滨江区
    • 商品详情
    • 店铺评价
    立即购买 加入购物车 收藏
    手机购买
    微信扫码访问
    • 商品分类:
      计算机与互联网
      货号:
      909743
      商品描述:
      【书    名】 JavaScript编程精解(原书第2版)
      【书    号】 9787111518600
      【出 版 社】 机械工业出版社
      【作    者】 [美]马尔奇·哈弗贝克(Marijn Haverbeke
      【出版日期】 2016-01-01
      【版    次】 1
      【开    本】 16开
      【页    码】 325
      【定    价】 79.00元

      【编辑推荐】 
      ***JavaScript程序员力作,JavaScript之父Brendan Eich高度评价并强力推荐
      JavaScript编程原理与运用规则完*融合,读者将在游戏式开发中学会JavaScript程序设计,是系统学习JavaScript程序设计的**之作
      JavaScript几乎可以说是所有现代Web应用程序的核心,无论是社交应用程序,还是时下流行的浏览器游戏。虽说学习和使用JavaScript的成本并不高,但是它却是一种灵活且复杂的编程语言,你可以用它来构建功能全面且复杂的应用程序。
      本书深入剖析了JavaScript编程语言的内部细节,并阐述了编写优雅高效代码的方法。作者Marijn Haverbeke从示例代码开始讲解,逐步实现了完整的项目,与此同时作者还提供了一系列习题供读者练习,你可以从中学习并了解如何编写自己的程序。

      【内容简介】 
      通过阅读本书,你将学习和了解到:
      编程的基本要素,这其中包括语法、控制流和数据。
      如何组织和创建面向对象的代码以及函数式编程的技术。
      如何在浏览器当中编写脚本和创建基本Web应用程序。
      如何使用DOM与浏览器进行高效交互。
      如何通过Node.js来构建服务器和工具。

      本书包括三个部分。前11章讨论JavaScript语言本身的一些特性。接下来的8章讨论网页浏览器和JavaScript在网页编程中的实践。*后两个章节专门讲解另一个使用JavaScript编程的环境——Node.js。

      【目录】 
      Contents 目录
      译者序
      赞誉
      前言
      第*部分 JavaScript编程语言
      第1章 值、类型和运算符 2
      1.1 值 2
      1.2 数字 3
      1.3 字符串 5
      1.4 一元运算符 6
      1.5 布尔值 6
      1.6 未定义值 8
      1.7 自动类型转换 8
      1.8 本章小结 10
      第2章 程序结构 11
      2.1 表达式和语句 11
      2.2 变量 12
      2.3 关键字和保留字 13
      2.4 环境 14
      2.5 函数 14
      2.6 console.log函数 14
      2.7 返回值 15
      2.8 prompt和confirm函数 15
      2.9 控制流 16
      2.10 条件执行 16
      2.11 while和do循环 17
      2.12 代码缩进 19
      2.13 for循环 19
      2.14 跳出循环 20
      2.15 更新变量的简便方法 21
      2.16 switch条件分支 21
      2.17 大写 22
      2.18 注释 22
      2.19 本章小结 23
      2.20 习题 23
      第3章 函数 25
      3.1 定义函数 25
      3.2 参数和作用域 26
      3.3 嵌套作用域 27
      3.4 函数值 28
      3.5 符号声明 29
      3.6 调用栈 29
      3.7 可选参数 31
      3.8 闭包 31
      3.9 递归 32
      3.10 添加新函数 35
      3.11 函数及其副作用 37
      3.12 本章小结 37
      3.13 习题 38
      第4章 数据结构:对象和数组 39
      4.1 松鼠人 39
      4.2 数据集 40
      4.3 属性 41
      4.4 方法 41
      4.5 对象 42
      4.6 可变性 44
      4.7 松鼠人的记录 45
      4.8 计算关联性 47
      4.9 对象映射 48
      4.10 分析结果 49
      4.11 详解数组 50
      4.12 字符串及其属性 51
      4.13 arguments对象 52
      4.14 Math对象 53
      4.15 全局对象 55
      4.16 本章小结 55
      4.17 习题 55
      第5章 高阶函数 58
      5.1 抽象 59
      5.2 数组遍历抽象 59
      5.3 高阶函数 61
      5.4 参数传递 62
      5.5 JSON 63
      5.6 数组过滤 64
      5.7 使用map函数转换数组 65
      5.8 使用reduce进行数据汇总 65
      5.9 可组合性 66
      5.10 性能开销 67
      5.11 曾曾曾曾……祖父 67
      5.12 绑定 70
      5.13 本章小结 70
      5.14 习题 71
      第6章 深入理解对象 72
      6.1 历史 72
      6.2 方法 73
      6.3 原型 74
      6.4 构造函数 75
      6.5 覆盖继承的属性 76
      6.6 原型污染 77
      6.7 无原型对象 79
      6.8 多态 79
      6.9 绘制表格 80
      6.10 Getter与Setter 84
      6.11 继承 85
      6.12 instanceof运算符 87
      6.13 本章小结 87
      6.14 习题 88
      第7章 项目实战:构建电子生态
       系统 89
      7.1 定义 89
      7.2 描述世界 90
      7.3 动物的编程接口 91
      7.4 World对象 93
      7.5 this及其作用域 94
      7.6 赋予生命 96
      7.7 动物的爬行动作 98
      7.8 更多动物 98
      7.9 更逼真的生态系统仿真 99
      7.10 动作处理器 100
      7.11 充实这个新世界 102
      7.12 让虚拟世界生机盎然 103
      7.13 习题 104
      第8章 处理缺陷与错误 105
      8.1 开发人员造成的问题 105
      8.2 严格模式 106
      8.3 测试 107
      8.4 调试 108
      8.5 错误传播 109
      8.6 异常 110
      8.7 异常后清理 111
      8.8 选择性捕获 112
      8.9 断言 114
      8.10 本章小结 115
      8.11 习题 115
      第9章 正则表达式 116
      9.1 创建正则表达式 116
      9.2 匹配测试 117
      9.3 匹配字符集 117
      9.4 部分模式重复 118
      9.5 子表达式分组 119
      9.6 匹配和分组 119
      9.7 日期类型 120
      9.8 单词和字符串边界 121
      9.9 选项模式 122
      9.10 匹配原理 122
      9.11 回溯 123
      9.12 replace方法 125
      9.13 贪婪模式 126
      9.14 动态创建RegExp对象 127
      9.15 search方法 128
      9.16 lastIndex属性 128
      9.17 解析INI文件 129
      9.18 国际化字符 131
      9.19 本章小结 131
      9.20 习题 132
      第10章 模块 134
      10.1 模块的好处 134
      10.2 使用函数作为命名空间 136
      10.3 使用对象作为接口 137
      10.4 与全局作用域分离 138
      10.5 将数据作为代码执行 138
      10.6 require函数 139
      10.7 模块加载过慢的问题 140
      10.8 接口设计 143
      10.9 本章小结 144
      10.10 习题 145
      第11章 项目实战:开发编程语言 147
      11.1 解析 147
      11.2 代码执行器 150
      11.3 特殊形式 151
      11.4 环境 153
      11.5 函数 154
      11.6 编译 155
      11.7 站在别人的肩膀上 155
      11.8 习题 156
      第二部分 在浏览器中使用JavaScript
      第12章 浏览器中的JavaScript 160
      12.1 网络和Internet 160
      12.2 Web 161
      12.3 HTML 162
      12.4 HTML和JavaScript 164
      12.5 沙箱 164
      12.6 兼容性与浏览器之争 165
      第13章 文档对象模型 166
      13.1 文档结构 166
      13.2 树 167
      13.3 标准 168
      13.4 通过树结构访问节点 169
      13.5 查找元素 170
      13.6 修改文档 170
      13.7 创建节点 171
      13.8 属性 173
      13.9 布局 175
      13.10 样式 176
      13.11 层叠样式 177
      13.12 查询选择器 178
      13.13 位置与动画 179
      13.14 本章小结 181
      13.15 习题 181
      第14章 处理事件 183
      14.1 事件处理器 183
      14.2 事件与DOM节点 184
      14.3 事件对象 184
      14.4 传播 185
      14.5 默认动作 186
      14.6 按键事件 187
      14.7 鼠标点击 188
      14.8 鼠标移动 189
      14.9 滚动事件 191
      14.10 焦点事件 192
      14.11 加载事件 192
      14.12 脚本执行时间线 193
      14.13 设置定时器 193
      14.14 降频 194
      14.15 本章小结 195
      14.16 习题 196
      第15章 项目实战:平台游戏 198
      15.1 游戏 198
      15.2 实现技术 199
      15.3 关卡 199
      15.4 读取关卡 200
      15.5 活动元素 201
      15.6 当封装成为负担 203
      15.7 绘图 204
      15.8 动作与冲突 208
      15.9 活动元素与动作 209
      15.10 跟踪按键 213
      15.11 运行游戏 213
      15.12 习题 215
      第16章 使用canvas绘图 217
      16.1 SVG 217
      16.2 canvas元素 218
      16.3 填充与描边 219
      16.4 路径 220
      16.5 曲线 221
      16.6 绘制饼状图 224
      16.7 文本 225
      16.8 图像 225
      16.9 变换 227
      16.10 存储与清除图像的变换状态 228
      16.11 回到游戏 230
      16.12 选择图像接口 234
      16.13 本章小结 235
      16.14 习题 235
      第17章 HTTP协议概述 237
      17.1 协议简介 237
      17.2 浏览器和HTTP 238
      17.3 XMLHttpRequest 240
      17.4 发送请求 240
      17.5 异步请求 241
      17.6 获取XML数据 242
      17.7 HTTP沙箱 242
      17.8 抽象请求 243
      17.9 Promise 245
      17.10 运用HTTP 247
      17.11 安全和HTTPS 247
      17.12 本章小结 248
      17.13 习题 248
      第18章 表单和表单域 250
      18.1 域 250
      18.2 聚焦 252
      18.3 禁用域 252
      18.4 作为整体的表单 253
      18.5 文本域 254
      18.6 选择框和单选框 255
      18.7 选择域 256
      18.8 文件域 257
      18.9 客户端保存数据 259
      18.10 本章小结 261
      18.11 习题 261
      第19章 项目实战:绘图程序 263
      19.1 实现 263
      19.2 建立DOM 264
      19.3 基础 265
      19.4 工具选择 265
      19.5 颜色和画刷大小 267
      19.6 保存 269
      19.7 加载图片文件 270
      19.8 完成 271
      19.9 习题 272
      第三部分 高级主题
      第20章 Node.js 276
      20.1 背景 276
      20.2 异步性 277
      20.3 node命令 278
      20.4 模块 278
      20.5 使用NPM安装 279
      20.6 文件系统模块 281
      20.7 HTTP模块 282
      20.8 流 283
      20.9 简单的文件服务器 284
      20.10 错误处理 288
      20.11 本章小结 290
      20.12 习题 290
      第21章 项目实战:技能分享网站 293
      21.1 设计 293
      21.2 长轮询 294
      21.3 HTTP接口 295
      21.4 服务器 297
      21.5 客户端 303
      21.6 习题 309
      第22章 JavaScript和性能 311
      22.1 分阶段编译 311
      22.2 图形布局 312
      22.3 定义图 313
      22.4 第*个力导向布局函数 314
      22.5 性能分析 316
      22.6 函数内联 317
      22.7 退化回旧式循环 318
      22.8 避免工作 319
      22.9 产生更少的垃圾 319
      22.10 垃圾回收 320
      22.11 修改对象 321
      22.12 动态类型 322
      22.13 本章小结 323
      22.14 习题 324

      【前言】 
      前言Preface本书讲解如何通过编程来让计算机执行任务。时至今日,计算机就像螺丝刀一样随处可见,但相比于螺丝刀而言,计算机中包含了更多隐含的复杂性,因此也更加难以理解和操作。许多人仍对计算机感到陌生和恐惧。
        一边是有血有肉的具备社交才能和空间推理能力的人类,另一边是冰冷的处理二进制数据的计算机,这两者该如何进行交互呢?我们已经找到了两种高效的方式来搭建人类与计算机之间通信的桥梁。第*种方法是模拟现实世界来构建与计算机交互的接口,这样我们就可以动动手指来操作计算机屏幕上的图形。对于一般的机器交互来说,这种方式非常实用。
        但是,我们在使用这种方法的情况下,只能通过点击操作实现接口设计者预先定义好的功能。幸运的是,我们可以利用人类的语言天赋来教会计算机一门语言,实现开放式接口。比如指挥计算机执行任意一种任务。
        人类语言可以用多种方式来组合单词和短语,表述出不同的信息。虽然计算机语言的语法灵活性没那么高,但也是采用了类似的原则进行设计的。
        在过去的20年中,越来越多的人开始使用计算机来进行简易的运算,曾经作为默认人机交互方式的命令行接口,现如今已经被图形界面所取代。但只要你细心观察,就会发现基于语言的接口仍在那里。比如JavaScript语言,你几乎可以在每个网页浏览器中找到它的身影,而消费者的设备都可以执行这门语言。
        本书的主要内容就是介绍这门语言,在阅读完本书后,相信你可以通过该语言来对计算机编程。
        关于程序设计不愤不启,不悱不发,举一隅不以三隅反,则不复也。
        —孔子除了讲解JavaScript之外,本书也会介绍一些程序设计的基本原则。程序设计还是比较复杂的。编程的基本规则通常简单清晰,但在这些基本规则之上构建的程序却容易变得复杂,导致程序产生了自己的规则和复杂性。即便程序是按照你自己的思路去构建的,你也有可能迷失在代码之间。
        在阅读本书时,你有可能会觉得书中的概念难以理解。如果你刚刚开始学习编程,那么你估计还有不少东西需要掌握呢。如果你想将所学知识融会贯通,那么就需要去多参考和学习一些资料。
        是否付出必要的努力完全取决于你自己。当你阅读本书的时候发现任何难点,千万不要轻易就对自己的能力下结论。只要能坚持下去,你就是好样的。稍做休息,复习一下所学的知识点,确保自己阅读并理解了示例程序和相关的练习。学习是一项艰巨的任务,但你掌握的所有知识都属于你自己,而且今后的学习道路会愈加轻松。
        计算机程序员对其创造的宇宙负全部责任,因为他们是创造者。以计算机程序的形式,可创造出无限复杂的宇宙。
        —约瑟夫·魏泽鲍姆《计算机的威力与人类的理性》一个程序有很多含义:它是开发人员编写的一段文本、计算机执行的一段指令集合、计算机内存当中的数据以及控制内存中数据的操作集合。我们通常很难将程序与我们日常生活中熟悉的事物进行对比。有一种表面上比较恰当的比喻,即将程序视作包含许多组件的机器,为了让机器正常工作,这些组件通过内部通信来实现整个机器的正常运转。
        计算机正是运行这些非物质机器的载体。计算机本身并不能实现多么复杂的功能,但计算机之所以有用是因为它们的运算速度非常快。而程序的作用就是将这些看似简单的动作组合起来,然后实现复杂的功能。
        对于我们当中的某些人来说,编写计算机程序是一种极大的乐趣。程序是开发人员思想的结晶。编写程序不需要什么物质投入,它很轻量级,通过我们的双手创造。
        但如果不稍加注意,程序的体积和复杂度就会失去控制,甚至代码的编写者也会感到迷惑。在可控的范围内编写程序是编程过程中首要解决的问题。当程序运行时,一切都是那么美好。编程的精粹就在于如何更好地控制复杂度。质量高的程序的复杂度都不会太高。
        很多开发人员认为,控制程序复杂度的*好方法就是避免使用不熟悉的技术。他们制定了严格的规则(“*佳实践”),定义了程序应该编写成什么样子。而激进分子更是觉得,如果程序没有按照这些规则进行编写,那么编写这些程序的开发人员就是不合格的。
        这极大地降低了程序的丰富程度!将程序简化成一些直截了当的代码,并完全禁止人们编写丰富多样的程序。正是因为程序当中有那么多不同的思想和未经探索的领域,才使得编程技术如此令人着迷。诚然,程序设计的世界中充满各色陷阱,让一个缺乏经验的程序员陷入其中非常危险,但这也只是意味着在前行过程中你需要小心谨慎,时刻保证头脑清醒,毕竟我们还要面对许多新挑战,探索更多新的领域。而那些不愿探索的人只会停滞不前,淡忘编程的乐趣,厌倦自己的事业。
        为什么编程语言如此重要在计算技术发展伊始,并没有编程语言这个概念。程序看起来就像这样:
        该程序计算数字1~10之和,并打印出结果:1 2 … 10=55。该程序可以运行在一个简单的机器上。在早期计算机上编程时,我们需要在正确的位置设置大量开关阵列,或在纸带上穿孔并将纸带输入计算机中。你可以想象这个过程是多么冗长乏味且易于出错。即便是编写非常简单的程序,也需要有经验的人耗费很大精力才能完成。编写复杂的程序则更是难上加难。
        当然了,手动输入这些晦涩难懂的位序列(1和0)来编写程序的确能让程序员感到很有成就感,而且能给你的职业带来极大的满足感。
        在上面的程序中,每行都包含一条指令。我们可以用中文来描述这些指令:
        1.将数字0存储在内存地址中第0的位置。
        2.将数字1存储在内存地址中第1的位置。
        3.将内存地址中第1的位置的值存储在内存地址中第2的位置。
        4.将内存地址中第2的位置的值减去数字11。
        5.如果内存地址第2的位置的值是0,则跳转到指令9。
        6.将内存地址第1的位置的值加到内存地址第0的位置上。
        7.将内存地址第1的位置上的值加上数字1。
        8.跳转到指令3。
        9.输出内存地址第0的位置上的值。
        虽说这已经比一大堆位序列要好读了许多,但仍然不尽如人意。或许使用名字代替数字作为指令和内存地址的标示符,可以进一步提高代码的可读性。
        现在你能看出该程序是如何工作的吗?前两行代码初始化两个内存位置的值:total用于保存累加计算结果,而count则用于记录当前数字。你可能觉得compare的那行代码看起来有些奇怪。程序想根据count是否等于11来决定是否应该停止运行。因为我们的机器相当原始,所以只能测试一个数字是否为0,并根据测试结果做出判断(是否跳转)。因此程序用名为compare的内存位置存放count–11的值,并根据该值是否为0决定是否跳转。接下来两行将count的值累加到结果上,并将count加1,直到count等于11为止。
        下面使用JavaScript重新编写了上面的程序:
        这个版本的程序得到了一些改进。更为重要的是,我们再也不需要指定程序如何来回跳转了,而是由while语句负责完成这个任务。只要我们给予的条件成立,while语句就会不停地执行其下方的语句块(包裹在大括号中)。而我们给予的条件是count

      配送说明

      ...

      相似商品

      为你推荐

    本店分类
    孔网啦啦啦啦啦纺织女工火锅店第三课

    开播时间:09月02日 10:30

    即将开播,去预约
    直播中,去观看