你能从这本书中学到什么? 在这本趣学指南中,你将学习JavaScript语言的方方面面,包括基本知识以及对象、函数、浏览器文档对象模型等高级主题。在阅读过程中,你还将完成填字游戏、探查案情、以想象不到的方式与JavaScript交互。另外,你还将编写大量代码,为独立造Web应用程序下坚实的基础。 这本书有什么特别之处? 本书基于神经生物学、认知学和学习理论领域的全新研究成果,采用了大量激发大脑的视觉元素,而不是充斥着让人昏昏欲睡的文字。
售 价:¥
纸质售价:¥86.50购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
O'Reilly Media, Inc. 介绍
业界评论
对本书的赞誉
对Eric T. Freeman和Elisabeth Robson的其他著作的赞誉
作者简介
前言
如何使用本书 前言
本书适合你阅读吗
我们知道你是怎么想的
元认知:对思维方式的思考
我们是如何做的
如何让大脑听话
导读
技术审校
致谢*
1 JavaScript速览
1 JavaScript速览:进入JavaScript的世界
JavaScript的工作原理
如何编写JavaScript
如何将JavaScript代码加入网页
JavaScript,你进步不小
如何编写语句
变量和值
切勿随意命名
自我表达
重复操作
while循环的工作原理
使用JavaScript进行决策
进行大量决策
与用户交流
console.log详述
打开控制台
编写一个正式的应用程序
如何将JavaScript代码加入网页(细数各种方式)
棒打鸳鸯散
2 编写代码
2 编写代码:更进一步
开发一款战舰游戏
第一次尝试——简化的战舰游戏
从高层次设计着手
更多细节
编写伪代码
对了,别忘了HTML
编写简单的战舰代码
编写游戏逻辑
第一步:创建循环并获取输入
prompt的工作原理
检查用户的猜测
判断是否击中
添加击中检测代码
你击沉了我的战舰
进行游戏后分析
完整的游戏逻辑
一点点质量保证
别这么啰嗦好不好
完善简单的战舰游戏
如何随机地指定位置
举世闻名的随机数生产配方
再来一点点质量保证
说说代码重用
3 函数简介
3 函数简介:养成函数思维
这些代码到底有什么问题呢
以前提到过函数吗
函数到底是如何工作的呢
可以向函数传递哪些东西
JavaScript按值传递实参
错误地调用函数
函数还可返回值
详解包含return语句的函数的执行过程
全局变量和局部变量
了解局部变量和全局变量的作用域
短命的变量
千万别忘了声明局部变量
4 让数据排排坐
4 让数据排排坐:数组
你能帮助泡泡玩具反斗城公司吗
如何使用JavaScript表示多个值
数组的工作原理
如何访问数组元素
修改数组元素
确定数组的长度
自动造句应用程序
回到泡泡玩具反斗城公司
办公室商谈
如何迭代数组
等等,还有一种更好的数组迭代方式
测试报表
别这么啰嗦好不好
使用后递增运算符重新编写for循环
快速测试
办公室商谈(续)
创建空数组并在其中添加元素
测试最终的报表
胜出的配方是……
快速审视代码
编写函数printAndGetHighScore
使用printAndGetHighScore重构代码
整合起来
5 理解对象
5 理解对象:对象镇之旅
对象
属性
如何创建对象
何为面向对象呢
属性的工作原理
变量是如何存储对象的爱寻根究底的人想知道……
比较基本类型和对象
使用对象
进行预检
这辆出租车合乎要求吗
分步进行预检
更深入地讨论向函数传递对象的情况
让fido减减肥
汽车自动制造机
如何给对象添加行为
改进方法drive
测试对象fiat
别着急
为何方法drive不知道属性started
测试关键字this
关键字this的工作原理
行为如何影响状态给车加点油
让状态来影响行为
加点油以便试驾
祝贺你熟悉了对象
对象无处不在(它们让你的生活更美好)
6 与网页交互
6 与网页交互:了解DOM
上一章的密码破解难题
这些代码是做什么的呢
简单总结一下
JavaScript如何与网页交互
如何自己动手制作DOM
初尝DOM
使用getElementById获取元素
从DOM获取的到底是什么
查找内部HTML
修改DOM的影响
围绕星球进行试驾
网页加载完毕前别想运行代码
你说“事件处理程序”,我说“回调函数”
别停下,继续前进
如何使用setAttribute设置特性
获取特性
回到星球示例
DOM还有哪些功能
7 类型、相等、转换等
7 类型、相等、转换等:系统地讨论类型
真相就摆在那里
小心,你可能意外遭遇undefined
如何使用null
处理NaN
比想象的还要怪异
有一点我们必须告诉你
理解相等运算符
相等运算符如何转换操作数(听起来比实际上危险)
严格相等
深入探讨类型转换
如何判断两个对象是否相等
真值就摆在那里
JavaScript将哪些值视为假值
字符串的神秘生活
为什么字符串既像基本类型又像对象
字符串方法和属性简明教程
座椅争夺战
在Brad的小隔间里
等等,需求变了
回到Larry的小隔间
海滩上,Brad坐在笔记本电脑前
8 综合应用
8 综合应用:编写一个应用程序
编写一个货真价实的战舰游戏
回顾HTML和CSS
创建HTML页面:大致轮廓
第1步:基本HTML
第2步:创建表格
第3步:与玩家交互
再添加一些样式
第4步:指出是否击中战舰
使用hit和miss类
如何设计这款游戏
实现view对象
displayMessage的工作原理
实现displayMessage
displayHit和displayMiss的工作原理
实现displayHit和displayMiss
再次试驾
模型
你需要更多战舰和更大的游戏板
如何表示战舰
实现model对象
规划方法fire
实现方法fire
判断是否击中了战舰
整合起来
别这么啰嗦好不好
回到战舰
最后一击
实现控制器
处理玩家的猜测
规划代码
实现parseGuess
回到控制器
判断游戏是否结束
获取玩家的猜测
如何给Fire!按钮添加事件处理程序
获取表单中玩家的猜测
将输入交给控制器
还有哪些地方要处理呢?哦,讨厌,战舰位置是以硬编码方式指定的
如何放置战舰
编写方法generateShip
生成新战舰的起始位置
完成方法generateShip的编写工作
避免碰撞
最后两项修改
祝贺你,该创业了
9 异步编码
9 异步编码:处理事件
事件是什么
事件处理程序是什么
如何创建第一个事件处理程序
测试事件处理程序
通过创建一个游戏来理解事件
实现游戏
再添加一些图像
将同一个事件处理程序赋给每幅图像的属性onclick
如何将同一个处理程序用于所有图像
事件对象的工作原理
使用事件对象
测试事件对象和target属性
事件和队列
其他事件
setTimeout的工作原理
完成猜图游戏
测试定时器
10 函数是一等公民
10 函数是一等公民:自由的函数
关键字function神秘的双面人生
函数声明和函数表达式
分析函数声明
接下来呢?浏览器执行代码
继续往下执行
结束
函数怎么也是值呢
我们提到过函数在JavaScript中是一等公民吗
乘坐头等舱
编写处理和检查乘客的代码
迭代所有的乘客
向函数传递函数
从函数返回函数
编写让乘客点饮料的代码
编写让乘客点饮料的代码:另一种方式
等等,我们需要多次供应饮料
利用作为一等公民的函数让乘客点饮料
Web镇可乐公司
数组方法sort的工作原理
整合起来
回到Web镇可乐公司
测试排序代码
练习答案
11 匿名函数、作用域和闭包
11 匿名函数、作用域和闭包:系统地讨论函数
函数的另一面
如何使用匿名函数
别这么嗦好不好
函数是在什么时候定义的?这要看情况
为何fly未定义
如何嵌套函数
嵌套对作用域的影响
词法作用域简介
词法作用域的有趣之处
再谈函数
再谈函数调用
闭包到底是什么
敲定函数
使用闭包实现神奇的计数器
测试神奇的计数器
揭秘
通过将函数表达式用作实参来创建闭包
闭包包含的是实际环境,而非环境的副本
使用事件处理程序来创建闭包
不使用闭包
使用闭包
测试按钮单击计数器
用作按钮单击处理程序的闭包的工作原理
12 高级对象构造技巧
12 高级对象构造技巧:创建对象
使用对象字面量创建对象
按约定创建对象
对象构造函数简介
如何创建构造函数
如何使用构造函数
构造函数的工作原理
还能在构造函数中定义方法
生产时间到了
试驾一些新车
不要将对象字面量弃若敝屣
用一个对象字面量替代所有实参
修改构造函数Car
理解对象实例
即便是创建好的对象,也可以有独特的属性
内置构造函数
数组对象
其他内置对象
13 使用原型
13 使用原型:超强的对象创建方式
先来介绍一种更好的对象图
再谈构造函数:它能让我们重用代码,但效率如何呢
重复的方法真是个问题吗
原型是什么
继承原型
继承的工作原理
重写原型
原型从哪里来
如何设置原型
创建几个小狗对象并对原型进行测试
编写让Spot发出叫声时显示says WOOF!的代码
原型是动态的
方法sit更有趣的实现
再谈属性sitting的工作原理
如何设计表演犬
建立原型链
原型链中的继承原理
创建表演犬原型
首先,需要一个继承小狗原型的对象
接下来,将新建的小狗实例变成表演犬原型
该补全原型了
创建表演犬实例
测试表演犬
研究练习结果
最后的整理
继续清理
Dog.call详解
最后的测试
小狗原型并非原型链的终点
充分发挥继承的威力之重写内置行为
充分发挥继承的威力之扩展内置对象
测试俗语检查器
JavaScript大统一理论
使用对象改善生活
整合起来
继续学习
A 附录 遗漏内容
附录 遗漏内容:未涉足的十大主题
#1. jQuery
#2. 更多地使用DOM
#3. 对象window
#4. arguments
#5. 处理异常
#6. 使用addEventListener添加事件处理程序
IE8和更早版本中的事件处理
#7. 正则表达式
#8. 递归
#9. JSON
#10. 服务器端JavaScript
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜