冒泡排序法
思想 一个数组arr中,从左至右,两两相互比较,若arr[ i ]< arr[ i+1 ],则两个元素交换数据;数组长度为arr.length,那么一共要排序arr.length-1次,每次比较arr.length-1次,即排序次数为:arr.length-1,比较次数为(arr.length-1)*(arr.length-1)
静态的冒泡排序
var arr = [45, 66, 96, 125, 785, 32, 14, 65, 78];
var temp = 0;
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - 1 -i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);
动态的冒泡排序
函数
定义
一堆特定代码的集合体,它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性,一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏
声明
function 自定义的函数名称(){
函数体
}
调用
自定义函数名称();
函数参数
形参
函数的形式参数,在声明的函数的小括号里的变量,形参可以有多个,参数与参数之间用逗号隔开
实参
调用函数的实际参数,与形参一一对应,实参个数可以多于形参,参数与参数之间用逗号隔开
形参与实参的关系
实参给形参赋值的过程叫传参,要求实参与形参的数据类型要保持一致
实参的个数可以多于形参,多余的实参数据被忽略,实际忽略的数据依然保存在函数的内嵌数组中,后期面向对象会学到
实参的个数少于形参个数时,未传参的形参,默认填充为undefined
特点
1.函数默认不会执行 必须通过函数名()调用才会执行
2.函数的命名尽量遵守 动词或者动词+名词的方式 这样函数的作用一目了然
3.函数一次声明可以多次调用 每一次函数调用函数体会重新执行一次
函数的返回值
通俗的讲就是这个函数调用后自身的结果 在直观一点就是函数调用之后的值 默认是undefined
函数的返回值不是必要的,一般用于函数执行完毕之后产生一个结果 这个结果在其他地方需要使用的时候就需要返回值,如果当前函数没有返回值 浏览器会默认返回一个undefined
函数的三要素
函数名,函数参数,返回值
细节补充
1.自定义的函数名与变量命名规则和和规范相同
2.函数内部是可以继续调用其他函数的
function fn1() {
console.log("fn1开始...");
fn2();
console.log("fn1结束...");
}
function fn2 () {
console.log("执行fn2的代码");
console.log("执行fn2的代码");
console.log("执行fn2的代码");
}
//在函数1中调用了函数2
fn1();
3.两个相同的函数后面的会覆盖前面的函数
4.在Javascript中 实参的个数和形参的个数可以不一样
5.如果实参过多 那么多余的实参会被忽略
6.如果形参过多 会自动填上undefined
7.函数碰到return就不会在往下执行了 函数的结束用return break是用在循环里面的
return;的写法相当于return undefined;
函数断点调试
1. F8:跳到下一个断点,如果后面没有断点了,那么代码直接执行完。
2. F10:单步调试(跳过函数调用)
3. F11:单步调试(进入函数调用)
4. shift+F11:跳出函数调用
网友评论