函数的创建和调用
-
声明式
function fn( ){ }
-
赋值式
var fn = function( ){ }
-
调用
fn()
函数的参数
-
形参 :在创建函数时小括号内的值
-
实参 :在调用函数时小括号内参与运算的值
-
传参:
-
参数的数量要一一对应(输入的数可以多不可以少)
-
若输入的数量少会报错,若输入值多计算机会保存在(arguments)
-
函数的返回值
-
若需要使用函数的值要使用(return)关键字进行返回;
-
没有返回值,函数返回的就是undefiend;
-
重点:需要使用一个变量去接收函数的返回值;
函数的预解析(了解)
-
别名:变量提升
-
只是把变量的声明默认在文件的最开始位置进行加载,但是不予以赋值;
函数的嵌套
-
简单的嵌套
-
接收后台的数据或对象
-
-
复杂的嵌套
-
先求和再求平均数(封装函数)
-
作用域
-
全局作用域
-
在页面的任何位置都可以接收到的值
-
-
局部作用域
-
只能在函数体内才能接收到的值
注意
-
全局不可以接收到局部的值
-
局部可以接收全局的值
-
访问规则
-
当前作用域没有声明的时候 就会往上级去查找 直至查看完全局
-
全局中若有声明则返回undefined
-
全局中若有声明且有赋值得时候则返回值
-
全局中若没有声明和赋值的情况下 返回 is not a defined
-
赋值规则
-
当前作用域若没有声明的情况下就会往上级去查找直至查看完全局
-
当全局若没有找到的话就会直接(默认)自定义一个
-
递归函数(了解)
-
表示子级调用了子级本身
-
优点: 实现一些特殊的需求(斐波那契数列)
-
缺点: 导致浏览器性能低下,只能用于静态数据,若使用动态浏览器会奔溃
-
方法:
-
首先去找临界值,即不用计算就可以取得的值,
-
找这一次和上一次的关系,
-
假设当前函数已经可以使用,调用自身计算上一次,
-