基础函数(普通函数创建、带有参数的函数创建、带有返回值的函数创建;变量作用域、变量提升;递归的用法)
函数分为系统函数和自定义函数
系统函数(js提供的)例如:Number、parseInt、parseFloat、alert、prompt。。。
聚合函数关键字function:功能体,函数,方法,接收若干个数据,返回处理的结果。==》用于封装多次执行的代码
1. 普通函数的创建


2. 带有参数的函数创建(参数列表用于接收传递的数据)
(少传值会变成NaN;多传值不受影响)


3. 带有返回值的函数创建(必须return返回才能得到值)


return 用于获取函数调用后的结果,如果函数中没有return 或者 return后面不加任何值,都是undefined;return 一旦执行后,结束函数,不会执行后面的函数体代码;return 返回什么值,结果就得到什么值

变量的作用域、提升
1. 作用域--指变量和函数的可访问范围:
全局作用域 ==》在函数外使用 var 声明的变量,可以在任意位置访问到
函数作用域 ==》在函数内使用 var 声明的变量,只能在函数内访问到
如果函数内声明变量没有加 var ,就自动变成了全局变量

2. 变量提升--JS会将 var 声明的变量提升到所在作用域的最前边,赋值还是在原来的位置
例如:console.log(a); var a=1; # a打印为undefined
其实系统执行分两步:打印a, 在全局查找是否有a 这个变量,找到有a 变量 var a; 后面再执行的 a=1;
再例如:函数的形参,其实只是函数内部 var 声明的变量

3. 函数的作用域--函数的可访问范围,同样也分为全局函数和局部函数,全局函数可以在任意位置访问,而局部函数只能在所在的作用域下访问
使用function 关键字创建的函数会提升到所在作用域的最前边
递归
在函数中调用自身的一种算法
递归的使用:边界条件、递归前进、递归结束(return)。
例如:计算斐波那契数列第 n 项: 1 1 2 3 5 8 13 21 34(前两项都是1,第三项开始,每项的值是前两项相加的和)

但是计算斐波那契额数列,递归的方法计算效率不高,使用双层 for 循环计算效率更好

浙公网安备 33010602011771号