js琐碎笔记之 函数
2018-05-26 本文已影响13人
光明程辉
函数:
什么是函数:
一段可以在需要的时候就执行,可以重复使用的代码片段
解决的问题:
代码可以重复使用
语法:
* 函数的声明:
*
* 最常用的
* function 函数名(参数列表){
* 函数体
* }
*
* 函数表达式(不常用)
* var 变量名 = function(参数的列表){
* 函数体
* }
函数的调用:
* 函数名(参数);
* 如果函数没有调用,在函数里面的代码是不会执行的
使用return关键字
想要函数执行完毕之后,有一个结果可以被保存:
使用return关键字
也 称: 函数的执行结果 or 函数的返回值
函数的执行结果
* 函数的返回值:
函数的返回值的情况:
* 1 没有return ,此时函数的返回值就是 undefined
* 2 有return,但是return的后面没有跟数据,此时也还是undefined
* 3 有return并且return后面有数据,此时返回值就是return后面的数据
*
*
* return可以修改函数的返回值
*
* return的作用:
* 1 修改函数的返回值
* 2 终止函数的执行
* return 后面的代码就不再执行了
1 函数里面的代码,如果没有调用时不会执行的
* 2 函数里面可以调用另外的函数
* 3 函数在调用的时候,会回到声明的位置执行,执行完毕之后,又会回到调用位置,继续执行
* 4 函数在执行的时候,会发生参数的传递,按照顺序传递
函数的参数
* 形参,实参
*
* 形参的值发生改变,不影响实参的值
反证法(假设法)解决问题 --- 很重要的
遇上需要多重条件同时成立
推荐使用 : 反证法(假设法)解决
1 假设某个结论成立
2 找出一个反例,推翻假设
3 如果一直找,都找不到,证明假设成立
下面有2个例子来帮助大家理解:
A、求点击一个大checkBox,其余3个小的都选到,如果那3个没有全选,大checkBox就不会勾选。
![](https://img.haomeiwen.com/i1197386/5f6d7ea95e585339.png)
B、求 素数(质数):
除了1和他自己本身,不能被别的数字整除
怎么证明数字n是不是素数?
* 从2开始,到n-1结束,如果都不整除,就是素数
例如:判断 17 是不是素数
// 通常假设法的步骤:
// 1 正面假设: 假设17是素数
var flag = true;
// 2 找出一个反例:只要找到2-16之间,有一个数字能够被17整除,17就不是素数
for(var i = 2; i < 17 ; i++){
// 尝试找到有一个数字,被17模能够整除
if(17 % i == 0){
// 找到反例了
// 推翻假设
flag = false;
// 推翻假设之后,就没有必要继续证明了
break;
}
}
// 3 最后再来验证,假设是否仍然成立
if(flag){
//证明假设成立
console.log("17是素数");
}else{
// 证明假设不成立
console.log("17不是素数");
}
冒泡排序
![](https://img.haomeiwen.com/i1197386/f8c940d489f368e9.png)
this 的使用
![](https://img.haomeiwen.com/i1197386/36f57204e83fd35c.png)
闭包:
![](https://img.haomeiwen.com/i1197386/f195307b6b0e7ddf.png)
例子2:
![](https://img.haomeiwen.com/i1197386/0ecb11bba3930483.png)
回调函数:
![](https://img.haomeiwen.com/i1197386/bc8174ac93de8710.png)
回调函数例子:
![](https://img.haomeiwen.com/i1197386/9fda00e34a075cca.png)
回调函数:
![](https://img.haomeiwen.com/i1197386/85cc73ecf1b59fe2.png)
堆和栈的区别:
![](https://img.haomeiwen.com/i1197386/c97179d701803dd2.png)
![](https://img.haomeiwen.com/i1197386/0c7522b76e33a1f4.png)