新書推薦:
《
国家豁免法的域外借鉴与实践建议
》
售價:NT$
857.0
《
大单元教学设计20讲
》
售價:NT$
347.0
《
儿童自我关怀练习册:做自己最好的朋友
》
售價:NT$
316.0
《
高敏感女性的力量(意大利心理学家FSP博士重磅力作。高敏感是优势,更是力量)
》
售價:NT$
286.0
《
元好问与他的时代(中华学术译丛)
》
售價:NT$
398.0
《
汽车传感器结构·原理·检测·维修
》
售價:NT$
500.0
《
怪谈百物语:不能开的门(“日本文学史上的奇迹”宫部美雪重要代表作!日本妖怪物语集大成之作,系列累销突破200万册!)
》
售價:NT$
296.0
《
罗马政治观念中的自由
》
售價:NT$
230.0
|
編輯推薦: |
以JavaScript基础入门起,以静态页面开发和工程化开发两个方向,介绍了从脚本语言,到工程化项目构建的完整历程。
集合基础入门、文档大全及案例开发三位一体,既包括详细的基础知识介绍,又提供了丰富的实际项目和代码案例,包括详细的项目开发步骤,每个代码片段都有详细的注释标注和对应的操作说明。
|
內容簡介: |
本书系统地介绍了JavaScript编程基础、编程思想、浏览器应用开发、服务器端应用开发、类型约束器、工程化开发、网络完全及简单的数据结构和算法。 全书共10章:第1章为JavaScript入门介绍,第2章为JavaScript面向对象编程,第3章为JavaScript的DOM和BOM,第4章为ECMAScript规范,第5章为JavaScript异步编程,第6章为JavaScript模块化编程,第7章为NPM包管理器攻略,第8章为基于类型约束器的JavaScript,第9章为网络安全与协议,第10章为前端常用的数据结构与算法。 书中包含大量应用示例,从基础入门到进阶开发最终渗透到原理和实现。书中的开发示例基于VS Code开发工具和Chrome浏览器实现,书中从JavaScript基础到JavaScript的工程化项目开发,均使用完整的代码案例和中文注释说明,提供了图文并茂的流程描述和完整的源代码案例支持。 本书可作为Web前端初学者在具备一定JavaScript基础后进一步提升JavaScript编程思想的进阶书籍,也可以作为初级前端开发工程师或非科班学习前端的学生进行科班知识的补充书籍。
|
關於作者: |
张云鹏,前中国联通(黑龙江)产业互联网公司前端技术专家。十余年软件研发经验,精通前后端技术。带领百人技术团队专注于企业内部前端框架研发,前端高性能渲染,前端自动化部署,以及前端核心架构建设。精通Web应用开发,移动App开发以及桌面程序开发。现IT教育行业从业者,致力于IT领域的知识分享和开源贡献
|
目錄:
|
本书源代码
第1章锻体篇——认识JavaScript编程语言
1.1开启修炼之路
1.1.1修炼与编程的共同点
1.1.2JavaScript介绍
1.2JavaScript入门
1.2.1运行环境介绍
1.2.2Chrome Devtools介绍
1.3变量和数据类型
1.3.1变量的声明
1.3.2数据类型的划分
1.3.3基本类型与引用类型
1.4常用运算符
1.4.1算术运算符
1.4.2赋值运算符与字符串运算符
1.4.3比较运算符
1.4.4条件运算符
1.4.5逻辑运算符
1.4.6位运算符
1.5常用流程结构
1.5.1选择结构
1.5.2循环结构
1.5.3初探JSON对象和数组对象及其遍历方式
1.5.4异常处理
1.6JavaScript函数介绍
1.6.1函数的结构和用途
1.6.2变量与作用域
1.6.3闭包与作用域链
1.6.4函数的其他使用场景
第2章练气篇——JavaScript面向对象编程
2.1面向对象入门
2.1.1类与对象
2.1.2对象实例化应用
2.1.3原型对象prototype
2.1.4原型链与继承
2.1.5浅复制与深复制
2.2JavaScript内置对象
2.2.1Array对象
2.2.2Boolean对象
2.2.3Date对象
2.2.4Math对象
2.2.5Number对象
2.2.6String对象
2.2.7RegExp对象
2.3浏览器对象
2.3.1window对象
2.3.2navigator对象
2.3.3location对象
2.3.4存储对象
2.3.5定时器
2.4Object对象详细讲解
2.4.1Object.assign()方法
2.4.2Object.is()方法
2.4.3Object.values()方法
2.4.4Object.entries()方法
2.4.5Object.fromEntries()方法
2.4.6Object.defineProperty()方法
2.5严格模式介绍
2.5.1调用严格模式
2.5.2严格模式中的变化
第3章筑基篇——DOM
3.1DOM基础介绍
3.1.1获取HTML节点对象
3.1.2改变HTML属性和内容
3.1.3改变CSS样式
3.1.4DOM对象的增删操作
3.1.5DOM操作练习
3.2DOM事件绑定
3.2.1事件系统介绍
3.2.2常用事件绑定方式
3.2.3事件捕获和事件冒泡
3.2.4事件传播的原理与事件的灵活运用
3.3防抖和节流
3.3.1debounce防抖
3.3.2throttle节流
3.4HTMLCollection对象与NodeList对象
3.4.1HTMLCollection对象
3.4.2NodeList对象
3.5DOM操作综合实战
3.5.1开发一个登录页面
3.5.2登录页面的表单校验及背景图片的定时切换
3.5.3常规管理系统首页搭建
3.5.4访问权限控制和登录过期
3.5.5Cookie对象简介
第4章结丹篇——ECMAScript 6
4.1ECMA介绍
4.1.1ECMA组织与ECMA262
4.1.2ECMAScript发展史
4.2新的声明方式与作用域规则
4.2.1新的声明符号let
4.2.2新的声明符号const
4.3箭头函数与普通函数
4.3.1箭头函数介绍
4.3.2箭头函数与function函数的区别
4.4class对象
4.4.1class对象与function对象的区别
4.4.2class对象的继承
4.4.3属性、静态属性及私有属性
4.5ES6 的其他新特性
4.5.1数组的解构赋值
4.5.2对象的解构赋值
4.5.3模板字符串
4.5.4Set与Map
4.6Proxy与Reflect
4.6.1Proxy对象
4.6.2Reflect对象
第5章元婴篇——JavaScript异步编程
5.1初识异步编程
5.1.1什么是同步和异步
5.1.2深入探索同步和异步
5.1.3异步与多线程的区别
5.2初识异步编程
5.2.1浏览器的线程组成
5.2.2线程间的工作关系
5.2.3JavaScript的运行模型
5.3EventLoop与异步任务队列
5.3.1异步任务的去向与EventLoop的工作原理
5.3.2关于函数执行栈
5.3.3递归和栈溢出
5.4异步流程控制
5.4.1宏任务与微任务
5.4.2流程控制的银弹——Promise
5.4.3回调函数与Promise对象
5.4.4Promise对象应用详细讲解
5.4.5链式调用及其他常用API
5.4.6异步代码同步化
5.5手撕Promise对象
5.5.1定义一个Promise对象
5.5.2实现then()的回调函数
5.5.3实现catch()的完整功能
5.5.4其他常用功能的实现
第6章化神篇——JavaScript模块化编程
6.1JavaScript模块化发展历程
6.1.1无模块化时代的依赖管理
6.1.2JavaScript模块化的出现及发展
6.2Node.js及其模块系统
6.2.1Node.js的快速上手
6.2.2Node.js介绍
6.2.3Node.js的常用API
6.2.4NPM初探
6.2.5基于Node.js开发静态资源服务器
6.3工程化利器Webpack
6.3.1Webpack入门
6.3.2认识Webpack的Loader
6.3.3通过babelloader学习Loader的使用
6.3.4Webpack中的Plugin
6.3.5Webpack项目的样式处理
6.4基于Webpack的前端脚手架搭建
6.4.1创建一个区分开发环境与生产环境的项目
6.4.2构建生产环境与开发环境
6.4.3集成babel与CSS预处理器
6.4.4项目?配置项
6.4.5集成个性化功能
第7章还虚篇——NPM包管理器全攻略
7.1包管理器NPM介绍
7.1.1NPM的基本使用
7.1.2镜像网址管理
7.1.3学习npm config命令
7.2企业级NPM包管理器实战
7.2.1初始化工程化项目
7.2.2依赖管理介绍
7.2.3NPM的依赖加载规则
7.2.4bin属性的作用
7.2.5scripts属性的作用
7.2.6NPM的发布配置
7.3本地NPM私服搭建
7.3.1为什么需要NPM私服
7.3.2搭建本地NPM私服
7.4仿真nrm工具
7.4.1创建pnrm项目结构
7.4.2仿真实现nrm包的功能
7.4.3编写测试用例
第8章合道篇——基于类型约束器的JavaScript
8.1静态类型的JavaScript
8.1.1什么是静态类型
8.1.2Flow的出现
8.1.3什么是TypeScript
8.1.4TypeScript的环境搭建
8.2TypeScript语法入门
8.2.1基本类型与引用类型
8.2.2函数、interface与范型
8.3TypeScript高级应用
8.3.1装饰器
8.3.2模块和命名空间
8.3.3*.d.ts文件的使用
8.4基于TypeScript的前端项目实战
8.4.1使用Vite初始化Vue 3 TypeScript项目
8.4.2集成ElementPlus框架
8.4.3集成路由功能
8.4.4集成状态管理器Pinia
8.5基于TypeScript的前后端分离项目
8.5.1基于NestJS的服务器端项目搭建
8.5.2基于Vue 3 ElementPlus搭建前端登录页面
8.5.3开发服务器端登录接口
8.5.4实现完整的登录功能
第9章大乘篇——网络安全与协议
9.1客户端脚本攻击
9.1.1跨站脚本攻击XSS
9.1.2XSS攻击的案例1——MVC注入
9.1.3XSS攻击的案例2——超链接与图片注入
9.1.4XSS的攻防思想
9.2CSRF和单击劫持
9.2.1CSRF漏洞
9.2.2单击劫持
9.3常见服务器端攻击
9.3.1SQL注入攻击
9.3.2文件上传漏洞
9.4DDoS攻击详细讲解
9.4.1DDoS简介
9.4.2DDoS攻击的防御策略
9.4.3资源耗尽攻击
9.5前端常见网络协议常识
9.5.1从输入域名到网页展示经历了什么样的过程
9.5.2HTTP的发展历程
9.5.3HTTP缓存
第10章归初篇——前端常用的数据结构与算法入门
10.1简单数据结构示例
10.1.1数组和链表
10.1.2二叉树结构及其遍历思想
10.1.3递归与循环实现二叉树的遍历
10.1.4二叉查找树
10.2几种常见的插入排序算法
10.2.1图解直接插入排序
10.2.2图解二分插入排序
10.2.3图解希尔排序
10.3图解常用经典排序
10.3.1图解快速排序
10.3.2图解归并排序
10.3.3图解堆排序
10.4实现HTML语法解释器
10.4.1回顾HTML基础
10.4.2揭秘HTML解释器
10.4.3从词法分析到DOM树的构建
10.4.4家庭作业——反向生成HTML
|
內容試閱:
|
随着Web技术的迭代更新,前端框架和编程语言也没有停下迭代的脚步。JavaScript编程语言从ECMA5标准更新到如今的ECMA2022标准,前端开发也从静态页面构建,正式进入了工程化开发时代。
笔者从业互联网十多年,亲眼见证了前端技术的发展历程。JavaScript编程语言与其他前端框架的更新迭代速度并驾齐驱,每年都会推出新的语法标准。随着Node.js的问世,JavaScript从无人问津的渺小脚本语言,变成了同样可以构建大型Web应用的主流编程语言。随着TypeScript等类型约束器的问世,JavaScript生态已变得空前强大。笔者从国内的前端架构变迁时代起,便开始致力于JavaScript应用建设工作,构建了大量基于JavaScript编程语言的Web应用,所以笔者打算通过编写书籍的形式,将JavaScript编程语言的岁月变迁分享给读者。
本书从JavaScript基础入门起,以静态页面开发和工程化开发两个方向,介绍了从脚本语言到工程化项目构建的完整历程。读者可以通过阅读本书,快速地掌握JavaScript从发布至今的重要发展历程,以及现代工程化项目中所涉及的所有JavaScript常用特性。从理论基础和API文档到应用开发和底层实现,读者可以通过阅读本书,自底至上地领略JavaScript编程语言的核心。前端技术发展至今,其生态迭代速度异常惊人,但任何框架和其生态都是基于JavaScript核心编程基础实现的,笔者希望阅读本书的读者可以放下浮躁的心,踏实巩固编程语言基础和编程思想。由于JavaScript体系异常庞大,本书以实用性为主,着重介绍开发场景中高频使用的重点的技术及思想,有不完善的地方请各位读者多多包涵。
本书主要内容
第1章主要介绍JavaScript的运行环境、基础语法、内存结构、流程结构及常用的JavaScript基础开发案例。
第2章以API文档为主,主要介绍JavaScript的面向对象编程思想、JavaScript内置对象、浏览器内置对象及开发中涉及的常用对象API。
第3章主要介绍JavaScript的常规DOM操作,结合实际项目案例介绍工作场景中主流的DOM操作思想和常用API。还介绍了浏览器的事件系统、事件传递方式及事件监听器的实现,通过仿真的方式实现浏览器事件监听体系。最后介绍了浏览器常用的其他API。
第4章主要介绍ECMA标准和JavaScript历代ECMA新特性,集中介绍了ES5与ES6以后的新语法对比,附带介绍了ECMA标准迭代过程中更新的新对象与其使用方式。
第5章主要介绍JavaScript的异步编程解决方案,结合浏览器的内存结构,介绍了JavaScript同步异步关系、浏览器线程组成、EventLoop、函数执行栈、递归和栈溢出及Promise的发展历程。
第6章主要介绍JavaScript模块化编程发展历程,包括浏览器中JavaScript模块化发展史、Node.js的环境搭建、CommonJS模块系统、ESM模块系统、工程化开发、打包构建工具及基于脚手架开发的前端工程化项目搭建。
第7章主要介绍NPM包管理器系统、企业级NPM使用规则、Node.js的命令行工具开发、NPM公共依赖发布及NPM私服的搭建。
第8章主要介绍JavaScript的类型约束器来源、静态类型的JavaScript、Flow和TypeScript入门、TypeScript语法和编程特性及基于TypeScript的前后端工程化项目搭建和业务开发。
第9章主要介绍前端工程师需要掌握的网络安全知识,包括客户端脚本攻击、SQL注入攻击、文件上传攻击、DDoS攻击等常用攻防案例,还介绍了HTTP的发展历程及浏览器缓存的工作原理。
第10章主要介绍前端工程师需要掌握的入门级数据结构思想、常用算法思想和编译原理,并结合各种思想实现HTML语法解释器的案例开发。
阅读建议
本书是一本集基础入门、文档大全及案例开发三位一体的技术教程,既包括详细的基础知识介绍,又提供了丰富的实际项目和代码案例,包括详细的项目开发步骤,每个代码片段都有详细的注释标注和对应的操作说明。本书的基础知识、项目实战及原理剖析部分均提供了完整可运行的代码示例,并将涉及的项目源代码开源到线上,这样可以帮助读者更好地自学全方位的技术体系。
阅读本书的读者需要有一定的HTML、CSS及JavaScript基础,有基础的读者可简要阅读前4章内容,研读第5~10章内容。没有相关经验的读者需要先学习Web开发基础再阅读本书,或一边学习Web开发基础一边阅读本书。
第5章异步编程知识集合了大量的文字说明和代码案例,以图文并茂与底层代码实现的方式展开内容,无论是学习期的读者,还是工作经验不满3年的开发者,都要仔细阅读第5章的内容。
第6章和第7章以工作中的脚手架工具为输出目标,介绍了JavaScript模块化及工程化的发展历程,从0到1讲解了JavaScript脚手架工具的由来和原理,并对其进行了代码实现。除此之外,还融入了基于Node.js的命令行工具组件开发和依赖包发布的完整流程,尤其适合对脚手架工具陌生或没有头绪的读者阅读。
第8章以静态类型为核心,结合TypeScript语法,通过企业级项目搭建的标准流程介绍了强类型的JavaScript,以及在企业级应用中的开发方式。本章内容适合有JavaScript工程化项目经验的读者及从事基于TypeScript开发React项目的开发者阅读。
第9章和第10章以理论思想为主,从网络通信到浏览器底层原理进行了全方位介绍,适合编程思想薄弱或理论基础薄弱的读者阅读。第9章介绍的网络安全攻防案例,在实际开发场景中非常重要。读者还可以着重阅读第10章实现的HTML语法解释器,并独立编程实现。
扫描目录上方的二维码可下载本书配套源代码。
致谢
感谢我的家人,尤其是我的大小宝贝,在写作的过程中给予我大力支持和陪伴,使我得以全身心投入写作工作。感谢清华大学出版社赵佳霓编辑,在写作的过程中对我的耐心指导和帮助。
感谢北京华育兴业科技有限公司对我的大力支持;
感谢我的读者,对本书的大力支持,读者的支持就是我写作的动力; 最后,感谢清华大学出版社所有为本书的出版付出努力的老师们,得益于大家的帮助才有本书的顺利出版。
由于时间仓促,书中难免存在不妥之处,请读者见谅,并提出宝贵意见。
张云鹏
2023年9月
|
|