目的:学习使用JavaScript完成一些数据结构和常规算法的实现。(本书也是基于ES6标准的)
内容:(未完成,待继续)
第一阶段:前言
1、第一章:JavaScript简介。JS的环境搭建和调试工具IDE及JS基础。(如果之前看过红宝书或者是有JS基础的,这个部分可以快速阅读)JS的ES6环境要配置好。此外,里面有提到一个Web服务器http-server,它是一种命令行 http服务器,用于本地测试和开发,建议安装使用,很有意思。
2、第二章:ECMAScript和TypeScipt的概述。主要说的是ES6的JS和ES6转码为ES5的Babel转码器;ES6的新特性。(如果之前有看过《ES6标准入门》等ES6书籍,以上部分可以快速阅读;如果没有还是得细看,毕竟本书是基于ES6一些新特性去写JS的)TypeScipt,TS是一个渐进式包含类型的JS的超集,建议安装,非常有用,例如它的tsc命令可以把.ts文件编译为.js文件,并且在编译进行了类型和错误检测,对我们开发写JS很有帮助。在常规使用JS在编译时在第一行加上//@ts-check可以进行错误检测。此外,ES6模块导入的配置环境和方法要弄清楚。
第二阶段:数据结构
1、第三章,数组。数组的构建,操作方法(在收、尾、任意数组位置进行添加、删除元素等),像fibonacci函数、多维数组的构建与访问的实现可以动手练习一下。此外,数组在ES6新添的方法也要好好理解,还有数组的排序、搜索。
2、第四章,栈。栈可以当作为一种具有特殊行为的数组。栈是遵循后进先出(FILO)原则,新添或删除元素都是在栈顶完成。(相对地,另一端就叫做栈底)本章要掌握对栈的操作,如push,pop,对栈顶元素的操作,清空栈等。此外,如何让自己的Stack类的用户只能访问我们在类中暴露的方法是要用JS实现私有属性的方法,例如在第八章说到的WeakMap类型(Map),但是其可读性不强,在扩展该类时无法继承私有属性。
3、第五章,队列。
第三阶段:算法
1、第十三章,排序和搜索算法。