编辑推荐
适读人群:《细说JavaScript语言》针对于JavaScript语言的初学者、对ES6标准(在此标准中开发了诸多JavaScript新特性)的新技术研究者以及JavaScript开发者中的对基础知识、底层原理、优化效率的求知者。
《细说JavaScript语言》内容是纯JavaScript语言部分,和浏览器无关,包括JavaScript基本语法、数据类型、流程控制、函数、对象、数组和内置对象,所有知识点都是为了学习DOM编程、Node.js、JS框架等JavaScript高级部分做准备。《细说JavaScript语言》虽然是JavaScript的基础部分,但《细说JavaScript语言》内容都需要牢牢掌握,才能更好地晋级学习。
内容简介
《细说JavaScript语言》的重点是JavaScript语言的基础语法,它是JavaScript能够实现高级特效的必要前提。《细说JavaScript语言》通过*通俗的方式讲解了JavaScript语言中的变量、数据结构、运算符、语句、函数、对象等知识。虽然《细说JavaScript语言》内容只是JavaScript的基础,和网页没有关系,并不能实现太多页面中的特效,但《细说JavaScript语言》能够起到**的作用,能够带你走进JavaScript的微妙世界,是学习前端*核心的内容。《细说JavaScript语言》是“跟兄弟连学HTML5系列教程”的第二《细说JavaScript语言》,在知识体系方面需要先掌握系列图书**本《细说网页制作》中的一部分内容,同时为读者之后学习同系列其他图书做铺垫。
作者简介
兄弟连IT教育,成立于2006年,中国程序员培训领导者。兄弟连以“优秀的教学、严格的管理、职业素质课贯穿始终”而闻名,现已开设PHP、UI、HTML5、Java/Android、iOS、Linux等众多课程,分别在北京、上海、广州、沈阳、扬州、苏州、郑州、济南设立校区,今后会陆续在成都、西安、武汉等地建设校区,每年有数十万名学员受益于兄弟连的职业培训、教学视频、网络公开课、院校讲座、出版书籍。我们相信,我们不仅仅是老师,更是学员的梦想守护者与职场引路人。目录
第1章初识JavaScript1
1.1JavaScript概述2
1.1.1JavaScript和HTML的关系2
1.1.2JavaScript与浏览器的关系3
1.1.3JavaScript的运行原理4
1.2JavaScript的主要应用5
1.2.1处理用户事件5
1.2.2用JavaScript跨平台开发移动APP7
1.2.3节省与Web服务器的交互时间8
1.2.4编写页面特效8
1.2.5客户端功能插件10
1.2.6游戏和微活动11
1.2.7其他方面的应用11
1.3JavaScript的发展史12
1.3.1JavaScript的诞生12
1.3.2JavaScript与Java的关系13
1.3.3JavaScript与JScript的关系13
1.4伟大的ECMA标准13
1.4.1ECMAScript标准是什么14
1.4.2ECMAScript标准的由来14
1.4.3ECMAScript的版本14
1.4.4ECMAScript第6版的新特性15
1.5JavaScript的特性16
1.6JavaScript的组成16
1.6.1JavaScript语言的语法17
1.6.2文档对象模型(DOM)17
1.6.3浏览器对象模型(BOM)18
1.7JavaScript在移动开发中的应用19
1.7.1PC端和移动端开发的区别19
1.7.2什么是移动端WebAPP19
1.8JavaScript常见的开发形式20
1.8.1原生JavaScript20
1.8.2JavaScript插件20
1.8.3JavaScript框架20
1.9JavaScript的开发工具21
1.10《细说JavaScript语言》的上下文内容23
1.11JavaScript的学习方法23
1.11.1编程思想24
1.11.2编程实战24
1.11.3要事为先的原则24
1.11.4Bug解决之道25
1.11.5看教学视频,让学习变得简单26
本章小结27
课后练习题27
第2章学习前的准备29
2.1开发环境和开发工具的选择与使用29
2.1.1开发环境30
2.1.2开发工具34
2.1.3*扩展36
2.2在HTML中如何使用JavaScript38
2.2.1行内式38
2.2.2嵌入式42
2.2.3引入式43
2.2.4三种方式的特点44
2.3基本调试方法45
2.3.1警告窗45
2.3.2修改网页内容46
2.3.3修改标签内容47
2.3.4控制台50
2.4书写规范52
2.4.1基本的标点符号52
2.4.2严格区分大小写55
2.4.3注释56
2.5标识符58
2.6保留字59
2.7JavaScript的优化设计思想60
本章小结61
课后练习题62
第3章JavaScript中的变量64
3.1变量的声明和赋值64
3.1.1变量声明64
3.1.2变量赋值66
3.2变量提升67
3.3全局变量和局部变量69
3.4变量的命名规则70
3.5ES6新特性之局部变量71
3.5.1let关键字的基本使用71
3.5.2新增的区块作用域72
3.5.3关键字let与var的区别73
3.6ES6新特性之全局变量75
3.7ES6新特性之解构赋值76
本章小结78
课后练习题78
第4章JavaScript的数据类型80
4.1获取数据类型80
4.2字符串类型(string)82
4.2.1字面量表示82
4.2.2转义字符84
4.2.3字符串的特点85
4.2.4ES6新特性之模板字符串86
4.3数值类型(number)88
4.3.1字面量表示88
4.3.2进制转换88
4.3.3浮点数89
4.3.4浮点数的算术运算90
4.3.5数值范围91
4.3.6NaN91
4.4布尔类型(boolean)92
4.5未定义类型(undefined)93
4.6空类型(null)93
4.7对象类型(object)94
4.8类型转换95
4.8.1字符串类型转换95
4.8.2数值类型转换97
4.8.3布尔类型转换101
4.9ES6之Symbol类型102
4.9.1Symbol类型的创建103
4.9.2Symbol类型的特性103
4.9.3获取已创建的Symbol类型105
本章小结107
课后练习题107
第5章表达式与运算符110
5.1表达式110
5.1.1简单表达式111
5.1.2复杂表达式111
5.2运算符113
5.2.1算术运算符113
5.2.2赋值运算符118
5.2.3关系运算符118
5.2.4逻辑运算符121
5.2.5位运算符126
5.2.6其他运算符129
5.2.7优先级133
本章小结136
课后练习题136
第6章语句139
6.1顺序结构139
6.2表达式语句140
6.3声明语句141
6.4条件语句141
6.4.1if语句142
6.4.2if...else语句143
6.4.3elseif语句145
6.4.4switch语句147
6.5循环语句149
6.5.1while循环150
6.5.2do...while循环151
6.5.3for循环152
6.5.4for...in循环156
6.6跳出语句156
6.6.1label语句157
6.6.2break语句157
6.6.3continue语句158
本章小结160
课后练习题160
第7章函数163
7.1函数分类163
7.2自定义函数164
7.2.1函数的创建和调用164
7.2.2参数166
7.2.3返回值170
7.3函数的特殊类型170
7.3.1函数表达式170
7.3.2自执行函数171
7.3.3回调函数173
7.3.4递归函数175
7.3.5构造函数178
7.4函数作用域178
7.4.1局部变量178
7.4.2变量的访问机制179
7.4.3变量的生命周期180
7.5闭包181
7.6ES6函数新特性184
7.6.1rest参数184
7.6.2箭头函数184
本章小结186
课后练习题186
第8章对象189
8.1理解对象189
8.1.1什么是对象190
8.1.2对象有什么用191
8.1.3如何使用对象192
8.2创建对象194
8.2.1字面量创建194
8.2.2构造函数创建195
8.2.3工厂模式196
8.2.4自定义构造函数197
8.3对象属性200
8.3.1属性的查询200
8.3.2属性的删除200
8.3.3属性的遍历201
8.4对象的存储202
8.4.1存储机制202
8.4.2垃圾回收机制203
8.4.3内存优化203
8.5ES6对象新特性204
8.5.1属性的简洁表示法204
8.5.2属性名的表达式206
本章小结208
课后练习题208
第9章数组210
9.1理解数组210
9.1.1什么是数组210
9.1.2数组的组成结构211
9.1.3数组和对象的联系与区别211
9.2创建数组213
9.2.1构造函数创建数组214
9.2.2数组直接量创建数组215
9.3数组元素216
9.3.1元素的获取216
9.3.2元素的添加、修改和删除217
9.3.3元素的查询221
9.3.4元素的遍历222
9.4特殊的数组形式225
9.4.1稀疏数组226
9.4.2多维数组227
9.4.3类数组对象228
9.4.4字符串229
9.5数组特有的方法229
9.5.1join()方法230
9.5.2concat()方法230
9.5.3splice()方法232
9.5.4slice()方法232
9.5.5push()和pop()方法233
9.5.6unshift()和shift()方法233
9.5.7forEach()方法234
9.5.8map()方法235
9.5.9filter()方法236
9.5.10every()和some()方法237
9.5.11reduce()和reduceRight()方法238
9.5.12indexOf()和lastIndexOf()方法239
9.6ES6数组新特性239
9.6.1Array.of()方法240
9.6.2数组实例的find()和findIndex()方法240
9.6.3数组实例的fill()方法241
本章小结242
课后练习题243
第10章内置对象245
10.1String对象245
10.1.1简单上手246
10.1.2构造方法246
10.1.3其他方法247
10.1.4实际操作248
10.2Math对象249
10.2.1简单上手250
10.2.2对象属性250
10.2.3对象方法250
10.2.4实际操作251
10.3Date对象253
10.3.1简单上手253
10.3.2构造方法253
10.3.3实例方法255
10.3.4静态方法258
10.3.5实际操作259
10.4RegExp对象260
10.4.1简单上手260
10.4.2构造方法260
10.4.3元字符261
10.4.4运算符优先级263
10.4.5实际操作264
10.5Number对象265
10.5.1简单上手265
10.5.2构造方法265
10.5.3对象属性266
10.5.4对象方法266
10.5.5实际操作268
10.6Event对象268
10.6.1简单上手269
10.6.2事件句柄(EventHandlers)269
10.6.3鼠标/键盘属性271
10.6.4IE属性272
10.6.5标准Event对象属性274
10.6.6标准Event对象方法274
本章小结275
课后练习题275前言/序言
随着HTML5标准化逐渐成熟,以及互联网的飞速发展和移动端的应用不断创新,再加上微信公众号、小程序的应用飙升,原生APP向WebAPP和混合APP的转变,用户对视觉效果和操作体验的要求越来越高,HTML5成为移动互联网的主要技术,也是目前的主流技术之一。HTML5是超文本标记语言(HTML)的第5次修订,是近年来Web标准的巨大飞跃。Web是一个内涵极为丰富的平台,和以前版本不同的是,HTML5并非仅仅用来表示Web内容,在这个平台上还能非常方便地加入视频、音频、图像、动画,以及与计算机的交互。HTML5的意义在于它带来了一个无缝的网络,无论是PC、平板电脑,还是智能手机,都能非常方便地浏览基于HTML5的各类网站。对用户来说,手机上的APP会越来越少,用HTML5实现的一些应用不需要下载安装,就能立即在手机界面中生成一个APP图标,使用手机中的浏览器来运行,新增的导航标签也能更好地帮助小屏幕设备和视力障碍人士使用。HTML5拥有服务器推送技术,给用户带来了更便捷的实时聊天功能和更快的网游体验。
HTML5对于开发者来说更是福音。HTML5本身是由W3C推荐的,也就意味着每一个浏览器或每一个平台都可以实现,这样可以节省开发者花在浏览器页面展现兼容性上的时间。另外,HTML5是Web前端技术的一个代名词,其核心技术点还是JavaScript。如HTML5的服务器推送技术,再结合JavaScript编程,能够帮助我们实现服务器将数据“推送”到客户端的功能,客户端与服务器之间的数据传输将更加高效。基于SVG、Canvas、WebGL及CSS3的3D功能,会让用户惊叹在浏览器中所呈现的各种炫酷的视觉效果。以往在iPhoneiPad上不支持的Flash将来都有可能通过HTML5华丽地呈现在用户的iOS设备上。
本套图书介绍
为了让前端初学者少走弯路,快速而轻松地学习HTML5和JavaScript编程,我们结合新技术和兄弟连多年的教学经验积累,再通过对企业实际应用的调研,编写了一整套HTML5系列图书,共5本,包括《细说网页制作》、《细说JavaScript》、《细说DOM编程》、《细说AJAX与jQuery》和《细说HTML5高级API》,每一《细说JavaScript语言》都是不同层次的完整内容,不仅给初学者安排了循序渐进的学习过程,也便于不同层次的读者选择;既适合没有编程基础的前端初学者作为入门教程,也适合正在从事前端开发的人员作为技术提升参考资料。本套图书编写的初衷是为了紧跟新技术和兄弟连IT教育HTML5学科的教学发展,作为本校培训教程使用,也可作为大、中专院校和其他培训学校的教材使用。同时,对于前端开发爱好者,《细说JavaScript语言》也有较高的参考价值。
《细说网页制作》
作为“跟兄弟连学HTML5系列教程”的第一《细说JavaScript语言》,主要带领HTML5初学者一步步完成精美的页面制作。《细说JavaScript语言》内容包括HTML应用、CSS应用、HTML5的新技术、各种主流的页面布局方法和一整套页面开发实战技能,让读者可以使用多种方法完成PC端的页面制作、移动端的页面制作,以及响应式布局页面的制作,不仅能做出页面,还能掌握如何做好页面。
《细说JavaScript》
这是“跟兄弟连学HTML5系列教程”的第二《细说JavaScript语言》,在学习《细说JavaScript语言》之前需要简单了解一下第一《细说JavaScript语言》中的HTML和CSS内容。《细说JavaScript语言》内容是纯JavaScript语言部分,和浏览器无关,包括JavaScript基本语法、数据类型、流程控制、函数、对象、数组和内置对象,所有知识点都是为了学习DOM编程、Node.js、JS框架等JavaScript高级部分做准备。《细说JavaScript语言》虽然是JavaScript的基础部分,但《细说JavaScript语言》内容都需要牢牢掌握,才能更好地晋级学习。
《细说DOM编程》
这是“跟兄弟连学HTML5系列教程”的第三《细说JavaScript语言》,《细说JavaScript语言》内容都和浏览器相关,在学习《细说JavaScript语言》之前需要掌握前两《细说JavaScript语言》的技术。《细说JavaScript语言》内容包括BOM和DOM两个关键技术点,并且全部以PC端和移动端的Web特效为主线,以实例贯穿全部知识点进行讲解。学完《细说JavaScript语言》的内容,不仅可以用JavaScript原生的语法完成页面的特效编写,也为学习后面的JavaScript框架课程做好了准备。《细说JavaScript语言》内容是Web前端课程的核心,需要读者按书中的实例多加练习,能熟练地进行浏览器中各种特效程序的开发。
《细说AJAX与jQuery》
这是“跟兄弟连学HTML5系列教程”的第四《细说JavaScript语言》,其内容是建立在第三《细说JavaScript语言》之上的,包括服务器端开发语言Node.js、异步传输AJAX和jQuery框架三部分。其中,Node.js部分是为了配合AJAX完成客户端向服务器端的异步请求;jQuery是目前主流的前端开发框架,其目的是让开发者用尽量少的代码完成尽可能多的功能。AJAX和jQuery是目前前端开发的必备技术,《细说JavaScript语言》从基本应用开始学起,用实例分解方式讲解技术点,让读者完全掌握这些必备的技能。
《细说HTML5高级API》
这是“跟兄弟连学HTML5系列教程”的第五《细说JavaScript语言》,是前端开发的应用部分,主要讲解HTML5高级API的相关内容,包括画布、Web存储、应用缓存、服务器发送事件等,可以用来开发移动端的WebAPP项目。《细说JavaScript语言》重点讲解了Cordova技术,它提供了一组与设备相关的API,通过这组API,移动应用就能够通过JavaScript访问原生的设备功能,如摄像头、麦克风等。Cordova还提供了一组统一的JavaScript类库,以及与这些类库所用的设备相关的原生后台代码。通过编写HTML5程序,再用Cordova打包出混合APP的项目,可以安装在Android和iOS等设备上。
本套图书的特点
1.内容丰富,由浅入深
本套图书在内容组织上本着“起点低,重点高”的原则,内容几乎涵盖前端开发的所有核心技能,对于某一方面的介绍再从多角度进行延伸。为了让读者更加方便地学习本套图书的内容,在每《细说JavaScript语言》的每个章节中都提供了一些实际的项目案例,便于读者在实践中学习。
2.结构清晰,讲解到位
每个章节都环环相扣,为了让初学者更快地上手,本套图书精心设计了学习方式。对于概念的讲解,都是先用准确的语言总结概括,再用直观的图示演示过程,接着以详细的注释解释代码,最后用形象的比喻帮助记忆。对于框架部分,先提取核心功能快速掌握框架的应用,再用多个对应的实例分别讲解每个模块,最后逐一讲解框架的每个功能。对于代码部分,先演示程序效果,再根据需求总结出涉及的知识点逐一讲解,然后组合成实例,最后总结分析重点功能的逻辑实现。
3.完整案例,代码实用
为了便于读者学习,本套图书的全部案例都可以在商业项目中直接运用,丰富的案例几乎涵盖前端应用的各个方面。所有的案例都可以通过对应的二维码扫描,直接在手机上查看运行结果,读者可以通过仔细研究其效果,最大限度地掌握开发技术。另外,扫描每个章节中的资源下载二维码,可以获得下载链接,点击链接即可获取所有案例的完整源代码。
4.视频精致,立体学习
字不如表,表不如图,图不如视频,每《细说JavaScript语言》都配有详细讲解的教学视频,由兄弟连名师精心录制,不仅能覆盖书中的全部知识点,而且远远超出书中的内容。通过参考本套图书,再结合教学视频学习,可以加快对知识点的掌握,加快学习进度。读者可以扫描每个章节中提供的教学视频二维码,获取视频列表直接在手机上观看,也可以直接登录“猿代码(www.ydma.cn)”平台在PC端观看,逐步掌握每个技术点。
5.电子教案,学教通用
每《细说JavaScript语言》都提供了和章节配套的电子教案(PPT)。对于学生来说,可以作为学习笔记使用,是知识点的浓缩和重点内容的记录。由于本套图书可以作为高校相关课程的教材或课外辅导书,所以可以方便教师教学使用。读者可以通过扫描对应章节的二维码,下载或在线观看电子教案。《细说JavaScript语言》也为部分章节提供了一些扩展文章,也可以通过扫描二维码的方式下载或在线观看。
6.实时测试,寓学于练
每章最后都提供了专门的测试习题,供读者检验所学知识是否牢固掌握。通过扫描测试习题对应的二维码,可以查看答案和详细的讲解。
7.技术支持,服务到位
为了帮助读者学到更多的HTML5技术,在兄弟连论坛(bbs.itxdl.cn)中还可以下载常用的技术手册和所需的软件。笔者及兄弟连IT教育(新三板上市公司,股票代码:839467)的全体讲师和技术人员也会及时回答读者的提问,与读者进行在线技术交流,并为读者提供各类技术文章,帮助读者提高开发水平,解决读者在开发中遇到的疑难问题。
本套图书的读者群
有审美,喜欢编程,并且怀揣梦想的有志青年。
打算进入前端编程大门的新手,阶梯递进,由浅入深。
专业培训机构前端课程授课教材,有体系地掌握全部前端技能。
各大院校的在校学生和相关的授课老师,课件、试题、代码丰富实用。
前端页面、WebAPP、网页游戏、微信公众号等开发的前沿程序员,是专业人员的开发工具。
其他方向的编程爱好者,需要前端技术配合,或转向前端开发的程序员。
高洛峰
2017年2月