# JavaScript 学习笔记
Author:LYJ
WorkPeriod:2020.11.23~2020.11.27
本材料是个人对《JavaScript高级程序设计(第4版)》的阅读笔记
该书的中文版于2020年9月首版,涵盖ECMAScript2019的最新内容
该书的目录结构如下:
Chap1:介绍JavaScript的起源
Chap2:了解JavaScript如何与HTML结合来创建动态网页
Chap3:介绍语言的基本概念,包括语法和流控制语句
Chap4:探索JavaScript松散类型下的变量处理
Chap5:讨论JavaScript所有内置的引用类型(Date,Regexp,原始类型/包装类型)
Chap6:讨论JavaScript所有内置的引用类型(Object,Array,Map,WeakMap,Set,WeakSet)
Chap7:介绍ECMAScript新版引入的两个概念:迭代器和生成器
Chap8:解释如何在JavaScript使用类和面向对象编程
Chap9:介绍代理和反射API,用于拦截和修改该语言的基本操作
Chap10:探索JavaScript的强大特性:函数表达式(闭包、this、模块模式、箭头函数等)
Chap11:讨论JavaScript的异步编程范式(Promise类型,async/await)
Chap12:介绍浏览器对象模型(BOM),包括(window、document、location、navigator、screen)
Chap13:解释检测客户端机器及其能力的不同手段,包括能力检测和用户代理字符串检测
Chap14:介绍文档对象模型DOM,主要是DOM Level1 定义的API
Chap15:解释其他DOM API,包括浏览器本身对DOM的扩展
Chap16:解释DOM Level2/3 对DOM的扩展,
Chap17:解释事件在JavaScript中的本质
Chap18:讨论如何创建动态图形(canvas,WebGL)
Chap19:探索使用JavaScript增强表单交互及突破浏览器限制
Chap20:介绍各种JavaScript API,包括Atomics、Encoding、File、Blob、Notifications、Streams、Timing、Web Components、Web Cryptography
Chap21:讨论浏览器如何处理JavaScript代码中的错误,介绍浏览器调试工具技术
Chap22:介绍通过JavaScript读取操作XML数据的特性,解释不同浏览器支持特性和对象的差异,提供简化跨浏览器编码的建议
Chap23:介绍JSON数据格式,浏览器原生解析和序列化JSON及JSON的安全问题
Chap24:探讨浏览器请求数据和资源的常用方式(XMLHttpRequest、Fetch API)
Chap25:讨论应用程序离线时客户端机器上存储数据的各种技术(cookie、Web Storage、IndexedDB)
Chap26:介绍模块模式在编码中的应用以及模块加载方式(CommonJS、AMD、UMD)
Chap27:深入介绍专用工作者线程,共享工作者线程,服务工作者线程
Chap28:探讨企业级开发JavaScript的最佳实践(可维护性、性能优化、部署构建流程)
Chap29:附录,介绍ES2018和ES2019的新特性,严格模式,JavaScript库、框架和工具