JavaScript是当下最流行的编程语言。由于浏览器的原生支持(无需安装任何插件),JavaScript也被称作“互联网语言”。JavaScript的应用非常广泛,不仅被用于前端开发,也被用到服务器(Node.js)和数据库(MongoDB)环境中。
对任何专业技术人员来说,理解数据结构都非常重要。作为软件开发者,要能够用编程语言和数据结构来解决问题。编程语言和数据结构是这些问题解决方案中不可或缺的一部分。如果选择了不恰当的数据结构,可能会影响所写程序的性能。因此,了解不同数据结构和它们的适用范围十分重要。
算法在计算机科学中扮演着非常重要的角色。解决一个问题有很多种方法,但有些方法会比其他方法更好。因此,了解一下最著名的算法也很重要。
本期就给大家介绍一本前端开发人员必备好书《学习JavaScript数据结构与算法(第2版)》,本书第1版豆瓣评分8.1分,是市面上关于JS数据结构与算法最值得推荐的图书。
为什么用JavaScript来学习数据结构和算法呢?
JavaScript非常受欢迎,作为函数式编程语言,它非常适合用来学习数据结构和算法。通过它来学习数据结构比C或Java这些标准语言更简单,学习新东西也会变得很有趣。谁说数据结构和算法只为C或Java这样的语言而生?
学习数据结构和算法十分重要。首要原因是数据结构和算法可以很高效地解决常见问题,这对你今后所写代码的质量至关重要(也包括性能,要是用了不恰当的数据结构或算法,很可能会产生性能问题)。其次,对于计算机科学,算法是最基础的概念。最后,如果你想入职最好的IT公司(如谷歌、亚马逊、eBay等),数据结构和算法是面试问题的重头戏。
JavaScript环境搭建
相比其他语言,JavaScript的优势之一在于不用安装或配置任何复杂的环境就可以开始学习。每台计算机上都已具备所需的环境,哪怕使用者从未写过一行代码。有浏览器足矣!
A.最简单的环境搭建浏览器是最简单的开发环境。你也可以使用Firefox加Firebug。安装好Firebug后,在浏览器的右上角会看到如下图所示的图标。
点击Firebug图标,打开它,可以看到Console标签,我们可以在其命令行区域中编写所有JavaScript代码,如下图所示(执行源代码请按Run按钮)。
也可以扩展命令行,来适应Firebug插件的整个可用区域。你还可以使用谷歌Chrome,它已经集成了GoogleDeveloperTools(谷歌开发者工具)。打开Chrome,点击设置及控制图标,选中Tools
DeveloperTools,如下图所示。
然后,就可以在Console标签页中编写JavaScript测试代码,如下所示。
B.使用Web服务器(XAMPP)
你可能想要安装的第二个环境是XAMPP,它的安装过程也很简单,但比只使用浏览器麻烦点儿。安装XAMPP( 1
1.1 JavaScript数据结构与算法 1
1.2 环境搭建 2
1. JavaScript基础 6
1.4 控制结构 14
1.5 函数 16
1.6 JavaScript面向对象编程 17
1.7 调试工具 18
1.8 ECMAScript概述 19
1.9 ECMAScript6的功能 21
1.10 ECMAScript7的功能 29
1.11 小结 0
第2章 数组 1
2.1 为什么用数组 1
2.2 创建和初始化数组 2
2. 添加元素
2.4 删除元素 4
2.5 在任意位置添加或删除元素 6
2.6 二维和多维数组 6
2.7 JavaScript的数组方法参考 9
2.8 类型数组 50
2.9 小结 51
第章 栈 52
.1 栈数据结构 52
.2 ECMAScript6和Stack类 56
. 用栈解决问题 59
.4 小结 61
第4章 队列 62
4.1 队列数据结构 62
4.2 创建队列 6
4. 用ECMAScript6语法实现的Queue类 66
4.4 优先队列 66
4.5 循环队列——击鼓传花 68
4.6 JavaScript任务队列 70
4.7 小结 70
第5章 链表 71
5.1 链表数据结构 71
5.2 创建链表 72
5. 双向链表 82
5.4 循环链表 87
5.5 小结 88
第6章 集合 89
6.1 构建数据集合 89
6.2 创建集合 89
6. 集合操作 94
6.4 ES6——Set类 99
6.5 小结
第7章 字典和散列表
7.1 字典
7.2 散列表
7. ES6——Map类
7.4 ES6——WeakMap类和WeakSet类
7.5 小结
第8章 树
8.1 树数据结构
8.2 树的相关术语
8. 二叉树和二叉搜索树
8.4 树的遍历
8.5 搜索树中的值
8.6 自平衡树 17
8.7 小结 14
第9章 图
9.1 图的相关术语
9.2 图的表示
9. 创建Graph类
9.4 图的遍历
9.5 最短路径算法
9.6 最小生成树
9.7 小结
第10章 排序和搜索算法
10.1 排序算法
10.2 搜索算法
10. 小结
第11章 算法模式
11.1 递归
11.2 动态规划 19
11. 贪心算法
11.4 函数式编程简介
11.5 小结
第12章 算法复杂度
12.1 大O表示法
12.2 用算法娱乐身心
12. 小结
扫一扫,京东购
福利时间
本期为大家送出本书,小伙伴们说说自己平时使用JavaScript的时候遇到过哪些突出问题,其中有没有数据结构与算法方面的,都是怎么解决的?精选留言选出位小伙伴获得赠书。截止日期年10月12日,10:00。
本周特价电子书
《程序员的算法趣题》