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