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