函数的基础认识

一、函数的概念

函数是具有特定功能的一段代码块
函数定义完后不会去主动的执行,而是等待程序主动调用时 才会去执行;
函数的声明关键字: function
函数关键字 function 与 var关键字的行为几乎一样,都是在内存上开辟一段空间,用来存储变量之中的数据;

二、函数的声明

函数的声明式:
function 函数名 (){
代码段
}
比如说:
函数的基础认识
函数的赋值式:(赋值式可以没有函数名)
var foo = function(){
代码段
}
函数的基础认识

三、函数的返回值

五,我上面写的return有以下特性:
在函数中只要遇到了return关键字,表示函数执行结束,会立即跳出函数执行;
在函数中无论有多少个return,只执行第一个,后面都不执行了;
return类型可以返回任意类型,包括函数;

四、函数的递归调用

通过return可以返回函数我们可以写出递归函数;比如:
函数的基础认识
可以求出 1 + 2 + 3 + 4 + 5 + 6 +……的值 运行结果为:
函数的基础认识
递归某些情况写可以简化代码,解决一些问题,但是如果递归太多会难以计算;

五、函数的调用执行:

有定义就有调用;函数的调用方式有两种:
1.函数名 + ()+ ;
函数的基础认识
2.浏览器在特定时机下帮你调用;btn 就是元素的id; onclick 是事件行为;(事件就是:html标签进行触发 => 浏览器接受 => 浏览器调用函数)
函数的基础认识
学会了函数定义和调用可以用来解决一些冗余重复的代码比如说我们可以编写一个函数来比较三个数字的大小 并且让他们从小到大排列
函数的基础认识
函数的基础认识

六、函数的参数:

1、形参 :定义的时候函数名后面的括号里面填入的是形参,形参可以定义无限多个;
2、实参 :后面调用函数的时候传入的是实参;
如果传入的实参多于形参,那么多于的实参会存入argument中,argument类似于一个数组,存储实参;
函数的基础认识
函数的基础认识
如果传入的实参少于形参,那么未赋值的形参值会变成undefined;
函数的基础认识
函数的基础认识

七、函数的预解析机制:

函数都会有预解析机制:首先会全局检视你的代码,如果有语法错误会让所有代码无法执行;
声明提升 会把所有和内存有交互的行为提前;
函数的基础认识
上下两端代码是相同的 结果都是 undefined;因为var 会在内存中开辟一块区域,所以系统将var提前 就是下面那段代码 就是系统检视完后的形式; 函数也可以,可以先调用后声明,系统不会报错;
函数的基础认识
函数的基础认识