JavaScript是一门非常强大的编程语言。它是最流行的编程语言,也是网络应用里最卓越的语言之一。在GitHub(世界上最大的代码托管站点,https://github.com)上,托管了400 000多个JavaScript代码仓库(用JavaScript开发的项目数量也是最多的,参看http://goo.gl/ZFx6mg),并且还在逐年增长。 JavaScript不仅可用于前端开发,也适用于后端开发,Node.js就是这样一种技术。Node包(http://www.npmjs.org/)的数量也呈指数级增长。 要成为一名Web开发工程师,掌握JavaScript必不可少。 在本书中,你将学习最常用的数据结构和算法。为什么用JavaScript来学习这些数据结构和算法呢?我们已经回答了这个问题。JavaScript非常受欢迎,作为函数式编程语言,它非常适合用来学习数据结构和算法。通过它来学习数据结构比C或Java这些标准语言更简单,学习新东西也会变得很有趣。谁说数据结构和算法是只为C或Java这样的语言而生?在前端开发当中,你可能也需要实现它们。 学习数据结构和算法十分重要。首要原因是数据结构和算法可以很高效地解决常见问题,这对你今后的代码质量至关重要(也包括性能,要是用了不恰当的数据结构或算法,很可能会产生性能问题)。其次,对于计算机科学,算法是最基础的概念。最后,如果你想入职最好的IT公司(如谷歌、亚马逊、eBay等),数据结构和算法是面试问题的重头戏。 1.1 环境搭建 相比其他语言,JavaScript的优势之一在于不用安装或配置任何复杂的环境就可以开始学习。每台计算机上都已具备所需的环境,哪怕使用者从未写过一行代码。有浏览器足矣! 为了运行书中的示例代码,建议你做好如下准备:安装Chrome或Firefox浏览器(选择一个你最喜欢的即可),选择一个喜欢的编辑器(如Sublime Text),以及一个Web服务器(XAMPP或其他你喜欢的,这一步是可选的)。这些软件在Windows、Linux和Mac OS上均可以使用。 如果你使用Firefox,推荐你安装Firebug插件(https://getfirebug.com)。 接下来将介绍搭建环境的三种方案。 1.1.1 浏览器 浏览器是最简单的开发环境。 你也可以使用Firefox加Firebug。安装好Firebug后,在浏览器的右上角会看到如下图所示的图标。 点击Firebug图标,打开它,可以看到Console标签,我们可以在其命令行区域中编写所有JavaScript代码,如下图所示(执行源代码请按Run按钮)。 也可以扩展命令行,来适应Firebug插件的整个可用区域。 你还可以使用谷歌Chrome,它已经集成了Google Developer Tools(谷歌开发者工具)。打开Chrome,点击设置及控制图标,选中Tools|Developer Tools,如下图所示。 然后,就可以在Console标签页中编写JavaScript测试代码,如下所示。 1.1.2 使用Web服务器(XAMPP) 你可能想要安装的第二个环境是XAMPP,它的安装过程也很简单,但比只使用浏览器麻烦点儿。 安装XAMPP(https://www.apachefriends.org)或者你偏爱的其他Web服务器。然后,在XAMPP安装文件夹下找到htdocs目录。在该目录下新建一个文件夹,就可以在里面执行本书中所讲述的源代码;或者是直接将示例代码下载后提取到此目录,如下所示。 接下来,在启动XAMPP服务器之后,你就可以通过localhost这个URL,用浏览器访问源码,如下图所示(别忘了打开Firebug或谷歌开发者工具查看输出)。 执行示例代码时,请不要忘记打开谷歌开发者工具或Firebug查看输出结果。 1.1.3 使用Node.js搭建Web服务器 第三种选择就是100%的JavaScript,我们可以使用Node.js来搭建一个JavaScript服务器,不使用XAMPP搭建的Apache服务器。 首先要到http://nodejs.org/下载和安装Node.js。然后,打开终端应用(如果你用的是Windows操作系统,打开Node.js的命令行),输入如下命令: npm install http-server -g 最好手动输入这些命令,复制粘贴可能会出错。 也可以用管理员身份执行上述命令。对于Linux和Mac操作系统,使用如下命令: sudo npm install http-server -g 这条命令会在你的机器上安装一个JavaScript服务器:http-server。要启动服务器并在终端应用上运行本书中的示例代码,请将工作路径更改至示例代码文件夹,然后输入http-server,如下图所示,整个环境就搭建好了! 为执行示例,打开浏览器,通过http-server命令指定的端口访问: 下载示例代码 在官网(http://www.packtpub.com)购买的所有Packt图书,均可以下载到对应的示例代码。如果你并非在官网购买的本书,请访问http://www. packtpub.com/ support并注册你的邮箱,对应的代码文件就会发送给你。 本书的代码也可以在GitHub上找到,资源库地址为:https://github.com/loiane/ javascriptdatastructures-algorithms。