前言
第一章 JavaScript编程环境和模型
第二章 数组
第三章 列表
第四章 栈
第五章 队列
第六章 链表
第七章 字典
第八章 散列
第九章 集合
第十章 二叉树和二叉树查找
第十一章 图和图算法
第十二章 排序算法
第十三章 检索算法
第十四章 高级算法
前言
在过去的几年中,得益于Node.js 和SpiderMonkey等平台,JavaScript越来越广泛的应用于服务端编程。鉴于JavaScript已经走出了浏览器,程序员们发现他们需要更多传统语言提供的工具。这些工具包括传统的数据结构(如链表、栈、队列、图等),也包括传统的排序及查找算法。本书讨论在使用JavaScript进行服务端编程时,如何实现这些数据结构和算法。也讨论了在JavaScript语言的限制下,如何实现这些数据结构和算法,这些限制包括:数组及对象、无处不在的全局变量、基于原型的对象和模型等。
第一章 JavaScript编程环境和模型
1.1 编程环境
环境:JavaScript Shell 。这是由Mozilla提供的综合JavaScript编程环境SpiderMonkey中的一部分。下载地址:http://mzl.la/MKOuFY,滚至底部即可下载相应的JavaScript shell。
下载完成后,有两种使用JavaScript Shell 的方式,一种是使用交互模式;另一种是将JavaScript代码保存在一个文件中,使用shell解释执行。
1.2 编程实践
1.2.1 声明和初始化变量
JavaScript中的变量默认是全局变量,严格的说不需要在使用前声明。但本书遵循C++和Java等编译型语言的习惯,在使用变量前先对其进行声明。这样声明的好处是,声明的变量都是局部变量。
在JavaScript中,声明变量使用关键字var,后跟变量名称,还可以跟一个变量表达式。
var name;
var rate = 1.2;
var greeting = "hello world";
var flag = false;
1.2.2 算数运算和逻辑运算
+(加)、-(减)、*(乘)、/(除)、%(取余)
JavaScript同时拥有一个数学库,用来完成一些高级运算,比如平方根、绝对值和三角函数。
1.2.3 判断结构
常用的两种判断结构:if和switch
if 语句
if else 语句
if-else if 语句
1.2.4 循环结构
常用的循环结构: while 和 for
1.2.5 函数
JavaScript 提供了两种定义函数的方式,一种有返回值,一种没有返回值(这种函数有时也叫做子程或void函数)
1.2.6 变量作用域
javaScript 中的变量作用域被定义为函数作用域
1.2.7 递归
当一个函数被递归调用时,在递归没有完成时,函数的计算结果暂时被挂起。
1.3 对象和面向对象编程
对象通过如下方式进行创建:定义包含属性和方法声明的构造函数,并在构造函数后紧跟方法的定义。
function Checking(amount){
this.balance = amount; //属性
this.deposit = deposit;//方法
}
function deposit(amount){
this.balance += amount;
}