
本书由浅入深、循序渐进地介绍了JavaScript语言和程序设计的基本概念,结合案例深入讲解了JavaScript语言特性,强调了实现程序的算法和程序设计思想。全书共10章,第1章介绍JavaScript语言的入门知识;第2~5章介绍JavaScript的基本语法、算法及构成程序的顺序、分支、循环结构;第6章对函数进行深入探讨;第7章介绍面向对象的程序设计思想和方法;第8章和第9章介绍JavaScript语言中的两个核心对象——字符串和数组;第10章简要介绍异常的概念和程序调试的方法。 本书构思新颖、思路清晰、讲述详尽、案例丰富、通俗易懂,是Web开发爱好者学习程序设计最基础又较全面的教材。本书既可以作为职业院校计算机专业的教学用书,也适合程序爱好者自学。
前言 JavaScript语言是当前非常流行的语言,PC端、移动端及基于各类操作系统的浏览器都支持JavaScript程序的解释,因此JavaScript成为进行Web开发必须掌握的语言之一。 对于任何一个开发人员来说,无论是进行Web开发,还是从事桌面应用开发,最初的学习途径是学习并精通一门编程语言,在学习过程中需掌握该语言的基本语法、流程控制、函数、面向对象和异常及调试等技术,深入理解程序设计的思想和算法的实现,这样才能更全面地理解程序设计的内涵,对其他语言的学习和专业能力的发展均有积极意义。 本书针对中高职院校计算机专业JavaScript程序设计这门专业基础课,综合作者多年的课堂教学经验和学生的学习素养编写而成。本书在内容的编排上符合学生的学习能力和实际的岗位需求,做到基础理论适当,突出技能培养,尤其突出能力的提高,希望这门课能给学生今后的就业或创业带来较大帮助。 本书是Web前端开发人员的入门教材,参考《Web 前端开发职业技能等级标准》,围绕Web开发的最新技术标准,结合Web开发岗位需求,由浅入深、循序渐进,比较全面地介绍了JavaScript语言的基础知识和实际运用技能,以及利用这些技能完成实际项目开发的思想和过程。 本书内容通俗易懂,理论联系实际,可作为中高职院校计算机专业的教材,也可供Web前端开发者自学使用。 由于编者水平有限,书中难免存在不足之处,恳请读者提出批评和建议。编者联系方式:goldeagle_1995@163.com。 本书特色 本书依照Web前端开发人员必备的JavaScript语言开发的岗位需求,将专业技术学习和岗位技能培养有机融合,理论知识和实际案例的结合强化了程序设计的思维和分析能力,使读者融会贯通,深入浅出地掌握JavaScript语言的程序设计理论和实践。 本书立足使用最小的运行环境——Chrome浏览器来介绍JavaScript程序设计,书中代码尽可能避免出现HTML代码和CSS代码,便于读者专注于语言本身及算法实现,积累良好的编程素养和习惯。 代码说明 由于代码占据大量篇幅,为了精简页数,书中删除了部分冗余代码,完整的代码可以在源代码中找到。本书提供的配套资源读者可登录华信教育资源网(WWW.hxedu.com.cn)免费下载。 众所周知,注释在各类开发中是必不可少的内容。为了有利于读者研读代码,书中除了必须注释的内容,其他内容均未进行注释,读者可以在自行理解的基础上加以注释,从而加深印象,提高学习效果。 本书编者 参与本书编写的都是一线教师。编者长期从事Web前端技术研究和应用项目开发,掌握Web项目、软件研发、数据处理等领域的专业知识,在多年的专业教学中洞悉学生的困惑,积累了丰富的教学经验和素材。本书由龚爱民主编,负责全书内容的规划和定稿;于洁参与了本书第3章、第5章部分内容的编写工作;阮冰和张征为资料及案例的整理提供了帮助。
1 JavaScript快速入门 1 1.1 程序设计基本概念 1 1.1.1 计算机程序 1 1.1.2 程序语言 2 1.1.3 什么是JavaScript语言 3 1.1.4 学习程序设计的方法 4 1.2 Hello world 4 1.3 基础语法 6 1.3.1 直接量 6 1.3.2 运算符 6 1.3.3 输出 7 1.3.4 换行、空格与分号 7 1.3.5 注释 8 1.3.6 输入 9 2 变量与数据类型 10 2.1 变量 10 2.1.1 变量的定义 10 2.1.2 赋值和初始化 11 2.1.3 访问变量 13 2.2 常量 14 2.3 标识符与关键字 14 2.3.1 标识符 14 2.3.2 关键字 15 2.3.3 正确命名标识符 15 2.4 数据类型 16 2.4.1 数值类型 17 2.4.2 布尔类型 18 2.4.3 字符串类型 18 2.4.4 undefined与null 20 2.5 类型转换 21 2.5.1 自动类型转换 21 2.5.2 显式类型转换 22 3 顺序结构程序设计 25 3.1 算法基础 25 3.1.1 算法的概念 26 3.1.2 算法的描述 26 3.1.3 算法举例 28 3.2 表达式和语句 29 3.2.1 表达式 29 3.2.2 语句 30 3.2.3 复合语句 30 3.3 顺序结构 30 3.4 赋值运算 32 3.5 算术运算 32 3.5.1 自增和自减 33 3.5.2 算术运算的优先级 34 3.5.3 算术运算的结合性 35 3.6 字符串运算 36 3.7 顺序结构程序举例 38 3.7.1 计算圆的周长和面积 38 3.7.2 交换变量的值 38 4 分支结构程序设计 40 4.1 条件判断 40 4.2 关系运算与逻辑运算 41 4.2.1 关系运算 41 4.2.2 逻辑运算 43 4.2.3 关系运算与逻辑运算的优先级 46 4.3 if语句 49 4.3.1 基本的if语句 49 4.3.2 if/else语句 52 4.3.3 if /else if/else语句 54 4.4 条件运算 57 4.5 switch语句 58 4.6 分支结构程序举例 60 4.6.1 闰年的判断 60 4.6.2 最大值问题 63 5 循环结构程序设计 66 5.1 循环的概念 66 5.2 for语句 67 5.3 while语句 72 5.4 do/while语句 74 5.5 嵌套循环 75 5.6 不同循环语句的比较 77 5.7 跳转 77 5.7.1 break语句 77 5.7.2 continue语句 79 5.7.3 break语句和continue语句的区别 80 5.8 循环结构程序举例 81 5.8.1 生成数列 81 5.8.2 字符串处理 82 6 函数 86 6.1 函数定义 86 6.1.1 无参数函数的定义 88 6.1.2 函数的参数 89 6.1.3 带参数函数的定义 89 6.1.4 参数默认值 91 6.1.5 表达式定义 92 6.1.6 空函数 93 6.2 函数返回值 93 6.2.1 返回undefined 93 6.2.2 指定返回值 94 6.3 函数调用 95 6.3.1 直接调用 96 6.3.2 函数表达式 96 6.3.3 函数调用作为参数 97 6.3.4 函数的嵌套调用 97 6.3.5 自动调用函数 100 6.4 变量作用域 100 6.4.1 局部变量 100 6.4.2 全局变量 101 6.4.3 生命周期 102 6.5 函数举例 102 6.5.1 素数 102 6.5.2 闰年判断 103 7 类和对象 105 7.1 面向对象的概念 105 7.1.1 面向对象的程序语言 106 7.1.2 面向对象的程序设计 106 7.2 对象和对象直接量 106 7.2.1 对象的概念 106 7.2.2 对象直接量 107 7.3 创建和使用类 108 7.3.1 类和实例 108 7.3.2 定义类 109 7.3.3 访问对象的属性 114 7.3.4 修改对象的属性 115 7.3.5 调用对象的方法 115 7.3.6 typeof与instanceof 117 7.3.7 for/in语句访问对象属性 119 7.4 封装 119 7.4.1 私有属性 120 7.4.2 操作私有属性 120 7.4.3 静态方法 122 7.5 继承 123 7.6 面向对象举例 124 7.6.1 设计学生类 125 7.6.2 贪吃蛇 127 8 数组 134 8.1 一维数组 134 8.1.1 一维数组的定义 135 8.1.2 数组长度 135 8.1.3 访问数组元素 136 8.1.4 遍历一维数组 137 8.2 二维数组 141 8.2.1 二维数组的定义 141 8.2.2 访问数组元素 142 8.2.3 遍历二维数组 143 8.3 Array对象常用方法 144 8.3.1 concat() 145 8.3.2 push()与pop() 146 8.3.3 shift()与unshift() 147 8.3.4 slice() 148 8.3.5 splice() 148 8.3.6 reverse() 150 8.3.7 sort() 150 8.3.8 toString()与toLocaleString() 152 8.3.9 join()与split() 153 8.4 数组应用举例 154 8.4.1 学生成绩统计 154 8.4.2 冒泡排序 156 8.4.3 贪吃蛇的移动 159 8.4.4 绘制迷宫地图 168 9 JavaScript常用对象 170 9.1 String对象 170 9.1.1 创建String对象 170 9.1.2 String对象的属性 171 9.1.3 String对象的常用方法 172 9.2 Date对象 182 9.2.1 Date对象的概念 182 9.2.2 Date对象的常用方法 184 9.3 Math对象 185 9.3.1 Math对象的概念 185 9.3.2 Math对象的常用属性和方法 185 9.4 常用内置对象举例 187 9.4.1 时钟 187 9.4.2 加密字符串 189 10 异常和调试 191 10.1 异常的概念 191 10.2 Error对象 192 10.3 异常处理 192 10.3.1 throw语句抛出异常 193 10.3.2 try/catch/finally捕捉异常 193 10.4 利用Chrome调试工具调试 196 10.4.1 “source”面板 196 10.4.2 console 197 10.4.3 Breakpoint 198 10.4.4 debugger命令 200