JavaScript是一种广泛应用于Web前端开发的脚本语言,具有简单、易学、易用的特点,用JavaScript开发网页可以增强网页的互动性,为用户提供实时的、动态的交互体验。
本书共分为12章,内容包括JavaScript快速入门、基本语法、数组、函数、对象、BOM、DOM、事件、正则表达式、Ajax、jQuery和网页2048小游戏。为了加深初学者对知识的领悟,本书在确保知识讲解系统、全面的基础上,还配备了精彩的案例,将多个知识点综合运用。
本书适合作为高等院校本、专科计算机相关专业的教材使用,也可作为JavaScript爱好者的参考书,是一本适合广大计算机编程爱好者学习参考的优秀读物。
1.配套PPT、课后练习题及答案、教学大纲、教案、教学视频等学习资源;
2.传统的章节体写法配以实践小案例,条例清楚、简单易学。
3.传智播客系列前端开发领域的又一力作。
黑马程序员,传智播客旗下高端IT教育品牌,成立于2006年,它是由中国Java培训第一人张孝祥老师发起,联合全球最大的中文IT社区CSDN、中关村软件园共同创办的一家专业教育机构。办学至今,我们一直坚守着“为千万人少走弯路而著书,为中华软件之崛起而讲课”的办学理念,坚持培养优秀软件应用工程师的宏伟目标,在累计培养的十万余名学员中,其中90%的学员均已在北、上、广等一线城市高薪就业。
第1章 JavaScript快速入门 1
1.1 初识JavaScript 2
1.1.1 什么是JavaScript 2
1.1.2 JavaScript的由来 3
1.1.3 JavaScript的特点 4
1.1.4 JavaScript与ECMAScript的关系 4
1.2 开发工具 5
1.2.1 浏览器 5
1.2.2 代码编辑器 6
1.2.3 【案例】第一个JavaScript程序 7
1.3 JavaScript入门 9
1.3.1 JavaScript引入方式 9
1.3.2 常用输出语句 11
1.3.3 注释 12
1.3.4 数据与运算 12
1.3.5 函数 14
1.3.6 对象 15
1.3.7 事件 17
1.3.8 【案例】改变网页背景色 18
动手实践:验证用户输入的密码 19
本章小结 20
课后练习 20
第2章 基本语法 21
2.1 变量 22
2.1.1 标识符 22
2.1.2 关键字与保留字 22
2.1.3 变量的使用 23
2.1.4 变量的赋值 23
2.2 数据类型 24
2.2.1 数据类型分类 24
2.2.2 基本数据类型 24
2.2.3 数据类型检测 26
2.2.4 数据类型转换 27
2.3 表达式 29
2.4 运算符 29
2.4.1 算术运算符 29
2.4.2 字符串运算符 30
2.4.3 赋值运算符 30
2.4.4 比较运算符 31
2.4.5 逻辑运算符 32
2.4.6 三元运算符 32
2.4.7 位运算符 33
2.4.8 运算符优先级 35
2.4.9 【案例】计算圆的周长和面积 35
2.5 流程控制 36
2.5.1 选择结构 36
2.5.2 循环结构 39
2.5.3 跳转语句 42
2.5.4 【案例】打印金字塔 43
动手实践:九九乘法表 45
本章小结 46
课后练习 46
第3章 数组 48
3.1 初识数组 49
3.2 创建数组 49
3.3 数组的基本操作 50
3.3.1 获取数组长度 50
3.3.2 数组的访问与遍历 51
3.3.3 元素的添加与修改 52
3.3.4 元素的删除 53
3.3.5 【案例】查找最大值与最小值 54
3.4 常见二维数组操作 55
3.4.1 创建与遍历 55
3.4.2 【案例】二维数组转置 56
3.5 数组排序 57
3.5.1 冒泡排序 57
3.5.2 插入排序 58
3.6 常见数组方法 60
3.6.1 栈方法 60
3.6.2 检索方法 61
3.6.3 数组转字符串 63
3.6.4 其他方法 63
3.6.5 【案例】猴子选大王 65
动手实践:省份城市的三级联动 66
本章小结 69
课后练习 70
第4章 函数 71
4.1 函数的定义与调用 72
4.1.1 初识函数 72
4.1.2 参数设置 73
4.1.3 函数的调用 74
4.1.4 【案例】字符串大小写转换 75
4.2 变量的作用域 76
4.3 匿名函数 78
4.3.1 函数表达式 78
4.3.2 匿名函数 78
4.3.3 回调函数 79
4.4 嵌套与递归 81
4.4.1 函数嵌套与作用域链 81
4.4.2 递归调用 82
4.4.3 【案例】求斐波那契数列第N项
的值 83
4.5 闭包函数 83
4.5.1 什么是闭包函数 83
4.5.2 闭包函数的实现 84
动手实践:网页计算器 85
本章小结 86
课后练习 86
第5章 对象 88
5.1 面向对象概述 89
5.1.1 面向过程与面向对象 89
5.1.2 面向对象的特征 89
5.2 自定义对象 91
5.2.1 对象的定义 91
5.2.2 访问对象成员 92
5.2.3 对象成员遍历 92
5.2.4 深拷贝与浅拷贝 93
5.3 构造函数 94
5.3.1 为什么使用构造函数 94
5.3.2 JavaScript内置的构造函数 95
5.3.3 自定义构造函数 95
5.3.4 私有成员 96
5.3.5 函数中的this指向 97
5.4 内置对象 98
5.4.1 String对象 98
5.4.2 Number对象 100
5.4.3 Math对象 100
5.4.4 Date对象 101
5.4.5 【案例】制作年历 102
5.5 错误处理与代码调试 105
5.5.1 错误处理 105
5.5.2 错误对象 106
5.5.3 错误类型 107
5.5.4 代码调试 107
5.6 原型与继承 109
5.6.1 原型 109
5.6.2 继承 110
5.6.3 静态成员 113
5.6.4 属性搜索原则 113
5.6.5 原型链 114
动手实践:表单生成器 118
本章小结 123
课后练习 123
第6章 BOM 125
6.1 什么是BOM对象 126
6.2 window对象 126
6.2.1 全局作用域 126
6.2.2 弹出对话框和窗口 127
6.2.3 窗口位置和大小 130
6.2.4 框架操作 132
6.2.5 定时器 132
6.2.6 【案例】限时秒杀 134
6.3 location对象 136
6.3.1 更改URL 136
6.3.2 获取URL参数 137
6.3.3 【案例】定时跳转 138
6.4 history对象 139
6.4.1 历史记录跳转 139
6.4.2 无刷新更改URL地址 140
6.5 navigator对象 141
6.6 screen对象 142
动手实践:红绿灯倒计时 143
本章小结 145
课后练习 145
第7章 DOM 147
7.1 DOM对象简介 148
7.1.1 什么是DOM 148
7.1.2 DOM HTML节点树 148
7.1.3 DOM对象的继承关系 149
7.2 HTML元素操作 150
7.2.1 获取操作的元素 150
7.2.2 元素内容 154
7.2.3 【案例】改变盒子大小 155
7.2.4 元素属性 156
7.2.5 元素样式 158
7.2.6 【案例】标签栏切换效果 161
7.3 文档节点操作 162
7.3.1 获取节点 162
7.3.2 节点追加 164
7.3.3 节点删除 165
7.3.4 【案例】列表的增删和移动 166
动手实践:购物车 171
本章小结 176
课后练习 176
第8章 事件 178
8.1 事件处理 179
8.1.1 事件概述 179
8.1.2 事件的绑定方式 180
8.2 事件对象 182
8.2.1 获取事件对象 182
8.2.2 常用属性和方法 183
8.2.3 【案例】缓动的小球 186
8.3 事件分类 188
8.3.1 页面事件 188
8.3.2 焦点事件 189
8.3.3 鼠标事件 191
8.3.4 【案例】鼠标拖曳特效 193
8.3.5 键盘事件 195
8.3.6 表单事件 197
动手实践:图片放大特效 198
本章小结 202
课后练习 202
第9章 正则表达式 204
9.1 认识正则表达式 205
9.1.1 什么是正则表达式 205
9.1.2 如何使用正则 205
9.1.3 获取正则对象 206
9.2 字符类别与集合 207
9.2.1 字符类别 207
9.2.2 字符集合 208
9.2.3 【案例】限定输入内容 208
9.3 字符限定与分组 211
9.3.1 字符限定 211
9.3.2 括号字符 212
9.3.3 正则运算符优先级 214
9.3.4 【案例】内容查找与替换 214
9.4 与正则相关的方法 215
9.4.1 RegExp类中的方法 216
9.4.2 String类中的方法 217
动手实践:表单验证 217
本章小结 222
课后练习 223
第10章 Ajax 224
10.1 Web基础知识 225
10.1.1 Web服务器 225
10.1.2 HTTP 225
10.2 Web服务器搭建 228
10.2.1 PHP开发环境 229
10.2.2 前后端交互 230
10.3 Ajax入门 232
10.3.1 什么是Ajax 232
10.3.2 创建Ajax对象 233
10.3.3 Ajax向服务器发送请求 233
10.3.4 处理服务器返回的信息 236
10.4 数据交换格式 238
10.4.1 XML数据格式 239
10.4.2 JSON数据格式 240
10.4.3 【案例】无刷新分页 242
10.5 跨域请求 250
10.5.1 Ajax跨域问题 250
10.5.2 JSONP实现跨域请求 251
10.6 扩展技术 254
10.6.1 Cookie 254
10.6.2 FormData 255
10.6.3 Promise 256
10.6.4 WebSocket 260
动手实践:进度条文件上传 262
本章小结 265
课后练习 266
第11章 jQuery 267
11.1 jQuery快速入门 268
11.1.1 什么是jQuery 268
11.1.2 下载jQuery 268
11.1.3 使用jQuery 270
11.2 元素操作 271
11.2.1 jQuery对象 271
11.2.2 jQuery选择器 271
11.2.3 元素遍历 278
11.2.4 元素内容 279
11.2.5 元素样式 280
11.2.6 元素筛选 281
11.2.7 元素属性 283
11.2.8 【案例】折叠菜单 283
11.3 文档节点操作 285
11.3.1 节点追加 285
11.3.2 节点替换 286
11.3.3 节点删除 286
11.3.4 节点复制 287
11.3.5 【案例】左移与右移 287
11.4 事件操作 289
11.4.1 常用事件 289
11.4.2 页面加载事件 292
11.4.3 事件绑定与切换 292
11.4.4 【案例】手风琴效果 294
11.5 动画特效 295
11.5.1 常用动画 295
11.5.2 自定义动画 297
11.5.3 【案例】无缝轮播图 299
11.6 jQuery操作Ajax 302
11.7 插件机制 307
11.7.1 自定义插件 307
11.7.2 jQuery插件库 308
11.7.3 jQuery UI 309
11.7.4 【案例】自定义全选与反选
插件 311
本章小结 314
课后练习 314
第12章 网页版2048小游戏 315
12.1 游戏功能展示 316
12.2 实现步骤分析 317
12.3 游戏功能实现 317
12.3.1 设计游戏界面 317
12.3.2 控制游戏数值 319
12.3.3 实现单元格移动 323
12.3.4 设置游戏分数 326
12.3.5 判断胜利和失败 327
12.3.6 重新开始游戏 330
本章小结 330
课后练习 331