1 冒泡排序:
重复走访元素,依次比较相邻两个元素,错误则交换位置。
以下摘自菜鸟教程:冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。
作为最简单的排序算法之一,冒泡排序给我的感觉就像 Abandon 在单词书里出现的感觉一样,每次都在第一页第一位,所以最熟悉。冒泡排序还有一种优化算法,就是立一个 flag,当在一趟序列遍历中元素没有发生交换,则证明该序列已经有序。但这种改进对于提升性能来说并没有什么太大作用。
1. 算法步骤
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
2 return语句:
//声明函数
function 函数名( ) {
return 需要返回的值;
}
//调用函数
函数名();
//此时调用函数就可以得到函数体内return后面的值
在使用return语句后,函数会停止执行,并返回指定的值
如果函数没有return,返回的值是undefined
return语句后面的代码不在被执行 return只能返回一个值
3. arguments的使用 P126
arguments存放的是传递过来的参数
其展示形式是数组,因此可以进行遍历
4. 翻转数组 P128
newArray(newArray.length)=arr(i) 解读一下newArray.length 是当前存入的数组元素个数
想到一个知识点:i--是先输出再减
5.js没有块级作用域 P137
块级作用域由{ }包括
6.局部变量
只在函数内部使用,当其所在的代码块被执行时,会被初始化;当代码块运行结束后,就会被销毁,因此更为节省内存
相应的,全局变量会比较占内存 注意:在函数内部只是赋值而没有声明,当做全局变量看
7.作用域链 P138
内部函数访问外部函数的变量,采取的是链式查找,采用就近原则,这种结构称为作用域链
8.预解析
声明>函数体>赋值>调用>函数内部的变量提升
9. not a defined是没有声明 undefined是没有定义