第0章 计算机基础Θ 1
第1章 JavaScript程序设计基础 1
1.1 什么是程序设计 2
1.1.1 通用问题解决策略 2
1.1.2 程序开发周期 3
1.2 程序的结构 4
1.2.1 输入-处理-输出 4
1.2.2 控制结构 6
1.3 数据类型和对数据的操作 7
1.3.1 数字型数据 7
1.3.2 字符串型数据 7
1.3.3 布尔型数据 8
1.3.4 变量和命名常量 8
1.3.5 赋值语句 9
1.3.6 对数据的操作 10
1.4 解决问题:逻辑思考的重要性 13
1.4.1 伪代码 14
1.4.2 流程图 14
1.5 网页中的JavaScript 17
1.5.1 <script>/<script>标签对 17
1.5.2 <noscript>/<noscript>标签对 17
1.5.3 在网页<body>中的JavaScript 17
1.5.4 在文档<head>区域中的JavaScript 18
1.5.5 <body>的onload事件 19
1.6 对象简介 21
1.6.1 对象是什么 21
1.6.2 属性和方法 22
1.6.3 document(文档)对象 23
1.6.4 点标记 24
1.6.5 write()方法 24
1.6.6 getElementById()方法和innerHTML属性 26
1.6.7 open()和close()方法 28
1.7 JavaScript函数和事件 31
1.7.1 JavaScript函数 31
1.7.2 JavaScript事件 35
1.8 操作实践 38
1.8.1 Greg's Gambits:创建AboutYou页面 38
1.8.2 Carla's Classroom:创建AboutYou页面 45
1.9 复习与练习 51
主要术语 51
练习 52
编程挑战 55
案例研究 56
第2章 编程基石:变量和操作符 59
2.1 变量是什么 60
2.1.1 内存单元 60
2.1.2 变量名 60
2.1.3 命名建议 61
2.1.4 声明变量 61
2.2 数据类型 62
2.2.1 弱类型语言 63
2.2.2 数字 63
2.2.3 字符串和字符 64
2.2.4 命名常最 65
2.3 算术操作符和一些重要的函数 65
2.3.1 模操作符 66
2.3.2 操作优先级 66
2.3.3 连接操作符 68
2.3.4 分析整数和浮点数 68
2.4 关系操作符 70
2.4.1 ASCII码 70
2.4.2 关系操作符 72
2.5 逻辑操作符和条件操作符 75
2.5.1 逻辑操作符 75
2.5.2 布尔逻辑和布尔操作符 76
2.5.3 逻辑操作符的操作次序 77
2.5.4 条件操作符 78
2.6 操作实践 80
2.6.1 Greg's Gambits:创建填字游戏 80
2.6.2 Carla's Classroom:拼写课 85
2.7 复习与练习 94
主要术语 94
练习 94
编程挑战 96
案例研究 98
第3章 做出判断:选择结构 100
3.1 选择结构类型 100
3.2 单路选择结构:if语句 102
3.2.1 关于测试条件的说明 103
3.2.2 关于花括号的说明 103
3.3 二路选择结构:if...else语句 105
3.4 嵌套选择结构 108
3.5 复合条件 111
3.5.1 组合关系和逻辑操作符 111
3.6 多路选择结构 116
3.6.1 if...else if...结构 116
3.6.2 错误检查:只是开始 117
3.6.3 switch语句 120
3.7 操作实践 124
3.7.1 Greg's Gambits:Vadoma夫人知道所有事情 124
3.7.2 Carla's Classroom:算术课 132
3.8 复习与练习 144
主要术语 144
练习 144
编程挑战 147
案例研究 149
第4章 周而复始:重复结构 152
4.1 计算机不厌烦重复 153
4.1.1 循环基本概念 153
4.2 循环的类型 156
4.2.1 前测循环和后测循环 156
4.2.2 前测while循环 157
4.2.3 后测do...while循环 162
4.2.4 哨兵控制循环 165
4.2.5 计数器控制循环 167
4.3 for循环 170
4.3.1 for语句 171
4.3.2 初值 171
4.3.3 测试条件 171
4.3.4 递增递减语句 172
4.3.5 谨慎的豆子计数器 172
4.4 数据验证 176
4.4.1 isNaN()方法 177
4.4.2 检查整数 177
4.4.3 使用复合条件进行数据验证 178
4.4.4 charAt()方法 179
4.4.5 length属性 180
4.5 操作实践 182
4.5.1 Greg's Gambits:编码秘密信息 182
4.5.2 Carla's Classroom:高级算术课 190
4.6 复习与练习 202
主要术语 202
练习 202
编程挑战 205
案例研究 206
第5章 高级判断和循环 210
5.1 一些简单的教学统计分析 211
5.1.1 把所有数加起来 211
5.1.2 计算平均数 212
5.1.3 范围 213
5.1.4 奇数和偶数 214
5.1.5 整数准确性:Math方法 216
5.2 继续或者不继续 220
5.2.1 break语句 220
5.2.2 continue语句 228
5.3 循环嵌套 230
5.3.1 台式检查 230
5.3.2 嵌套循环的不同方法 232
5.4 用循环绘制形状和图案 236
5.4.1 绘制形状 237
5.4.2 使用循环创建图案 239
5.4.3 鼠标事件 240
5.5 操作实践 245
5.5.1 Greg's Gambits:巫师和巨怪之间的战斗 245
5.5.2 Carla's Classroom:语法课 257
5.6 复习与练习 264
主要术语 264
练习 264
编程挑战 267
案例研究 268
第6章 表单和表单控件 271
6.1 表单是什么 272
6.1.1 最基本的表单 272
6.1.2 返回表单提交的信息 274
6.2 表单控件 275
6.2.1 单选按钮 275
6.2.2 复选框 278
6.2.3 文本框 282
6.2.4 文本区框 286
6.3 隐藏字段和密码 291
6.3.1 隐藏的表单元素 291
6.3.2 密码表单元素 292
6.4 选择列表及其他 301
6.4.1 选择列表 301
6.4.2 表单元素的高级属性 305
6.5 操作实践 310
6.5.1 Greg's Gambits:玩家信息和物品目录 310
6.5.2 Carla's Classroom:Carla的进度报告表单 321
6.6 复习与练习 330
主要术语 330
练习 331
编程挑战 332
案例研究 333
第7章 代码简洁化:函数和JavaScript源文件 336
7.1 函数 337
7.1.1 内置函数 337
7.1.2 用户自定义函数 338
7.2 变量作用域 343
7.2.1 全局变量 343
7.2.2 局部变量 345
7.3 将信息传递给函数 346
7.3.1 将实参传递给形参 347
7.4 对象和面向对象概念 355
7.4.1 Math对象 355
7.4.2 其他JavaScript对象 356
7.4.3 Date对象 358
7.5 JavaScript源文件 360
7.5.1 更聪明地工作,而不是更努力地工作 361
7.5.2 创建和访问JavaScript源文件 361
7.5.3 创建函数库 367
7.6 操作实践 368
7.6.1 Greg's Gambits:悬吊人猜字游戏 368
7.6.2 Carla's Classroom:阅读理解课 378
7.7 复习与练习 386
主要术语 386
练习 387
编程挑战 389
案例研究 390
第8章 数组 394
8.1 一维数组 394
8.1.1 在JavaScript中创建数组 395
8.1.2 Array对象 396
8.1.3 关于数组名的说明 396
8.2 填充数组 398
8.2.1 直接装载数组 398
8.2.2 交互地装载数组 399
8.2.3 显示数组 400
8.3 平行数组 401
8.3.1 为什么使用数组 403
8.4 使用Array方法 405
8.4.1 push()方法 405
8.4.2 length属性可用于获取数组的长度 406
8.4.3 unshift()方法 407
8.4.4 splice()方法 408
8.5 多维数组 415
8.5.1 二维数组 415
8.5.2 声明和填充二维数组 416
8.6 操作实践 419
8.6.1 Greg's Gambits:数字拼图游戏15 419
8.6.2 Carla's Classroom:图像和想象 430
8.7 复习与练习 438
主要术语 438
练习 438
编程挑战 440
案例研究 442
第9章 搜索和排序 444
9.1 排序数组 445
9.1.1 sort()方法 445
9.1.2 用sort()方法排序数字 446
9.1.3 reverse()方法 447
9.2 冒泡排序 449
9.2.1 交换值 449
9.2.2 使用冒泡排序算法 450
9.2.3 传递数组 454
9.3 选择排序 456
9.4 搜索数组:线性搜索 462
9.4.1 线性搜索 462
9.4.2 线性搜索平行数组 465
9.5 搜索数组:二分搜索 468
9.5.1 二分搜索 469
9.5.2 让编程更容易:indexOf()方法 475
9.6 操作实践 477
9.6.1 Greg's Gambits:Greg的拼字游戏 477
9.6.2 Carla's Classroom:因数分解课 486
9.7 复习与练习 500
主要术语 500
练习 500
编程挑战 503
案例研究 505
第10章 文档对象模型和XML 507
10.1 文档对象模型 508
10.1.1 DOM简史 508
10.1.2 DOM节点和树 508
10.1.3 家族:父子模型 510
10.1.4 创建和插入元素 511
10.1.5 替换和除去元素 513
10.2 与定时器和样式一起使用DOM方法 516
10.2.1 setAttribute()和getAttribute()方法 516
10.2.2 setInterval()和clearInterval()方法 519
10.3 XML基础 523
10.3.1 XML是什么 523
10.3.2 为什么需要XML 523
10.3.3 XML组件 524
10.3.4 XML语法分析器和DTD 527
10.4 添加样式和XSL转换 530
10.4.1 与XML文档一起使用层叠样式表 531
10.4.2 可扩展样式表语言(XSL) 533
10.5 XML命名空间和模式 537
10.5.1 XML命名空间 537
10.5.2 XML模式 541
10.5.3 XML模式数据类型 542
10.5.4 创建XML模式 542
10.6 操作实践 545
10.6.1 Greg's Gambits:Greg的头像 545
10.6.2 Carla's Classroom:拼写课 555
10.7 复习与练习 562
主要术语 562
练习 563
编程挑战 565
案例研究 566
第11章 PHP概述 570
11.1 PHP简史 571
11.1.1 服务器做什么 571
11.1.2 Apache HTTP服务器、MySQL和PHP 572
11.2 XAMPP 573
11.2.1 安装XAMPP 574
11.2.2 开始使用 574
11.3 PHP基础 577
11.3.1 PHP文件名、htdocs文件夹和浏览PHP页面 578
11.3.2 变量和方法 579
11.3.3 PHP关键字 584
11.3.4 操作符 584
11.4 使用条件和循环语句 589
11.4.1 做出判断:if结构 589
11.4.2 循环往复:重复和循环 592
11.5 数组和字符串 596
11.5.1 数组 596
11.5.2 为什么要学习PHP 599
11.5.3 处理字符串 600
11.6 操作实践 605
11.6.1 Greg's Gambits:PHP欢迎信息 606
11.6.2 Carla's Classroom:使用PHP获取提示信息 614
11.7 复习与练习 622
主要术语 622
练习 623
编程挑战 625
案例研究 627
第12章 与Cooke和MySQL一起使用PHP 630
12.1 Cookie 631
12.1.1 Cookie类型 631
12.1.2 写Cookie 632
12.2 数据库服务器:MySQL 640
12 2.1 MySQL概述 640
12.2.2 建立MySQL用户账户 640
12.2.3 数据库结构 643
12.2.4 构建小型商务数据库 644
12.2.5 用phpMyAdmin创建数据库 646
12.3 通过Web填充数据库 649
12.3.1 网页表单 650
12.4 使用PHP发送含数据库信息的电子邮件 656
12.4.1 表单 656
12.5 操作实践 660
12.5.1 Greg's Gambits:创建账户和验证登录 660
12.5.2 Carla's Classroom:使用PHP通过电子邮件发送学生报告 677
12.6 复习与练习 686
主要术语 686
练习 687
编程挑战 689
案例研究 690
附录A ASCII字符 692
附录B 操作符优先级 696
附录C HTML字符和实体 698
附录D JavaScript对象 700
附录E jQuery 709
附录F DOM属性、方法和事件 711
附录G PHP保留字 714
附录H PHPMySQL函数 717
附录I 检查点答案 719