函数
定义
-
关键字 字面量
function 函数名(){}
-
表达式 -- 匿名函数---匿名函数具名化
匿名函数:没有函数名字的函数
var fn = function () {};
匿名函数具名化
本来函数没有名称就可以,非要加一个名称 (一般不起作用)
-
构造函数法
var 函数名 = new Function('参数','函数体')
调用
函数名();
传参
形参
声明函数的时候,给的参数, 类似于变量名;在声明函数的时候,参数是没有值。
实参
调用函数是给的参数; 实参会按照顺序赋值给形参。
如果没有传递实参,形参就是undefined 循环不进行,sum初始值为0,所有fun()--->0
如果没有传递实参,给形参赋初始值
arguments
是一个只能在函数内使用的变量
是函数的天生自带的变量
是一个数据集合(承载数据的盒子)
1. 承载的就是该函数被调用的时候传递的所有 实参
2. 函数实参的集合
应用
求和
求平均
求最大
求最小
返回值
不论上面是否做任何复杂的操作,return是谁,结果就是谁
出现return 后面有其他语句也将不在执行
如果不写return,得到undefined
写了return,没有赋值,得到undefined
自调函数
自调用函数是指一个函数定义后立即被调用的表达式。这种函数一旦执行完毕,其定义就不再直接可访问(除非它被赋值给了一个变量),因此不能通过原来的函数名进行再次调用。
回调函数
一个函数当做另一个函数的参数
箭头函数
- 去掉function 变成箭头,小括号和大括号中间
- 只有一个形参可以省略小括号
- 语句只有一条可以省略大括号
- 如果只有一条语句,并且这条语句是return,可以省略return
- 箭头函数无法使用arguments
- 箭头函数不能new,没有constructor
- 箭头函数没有this,它的this指向上级作用域
... 剩余运算 展开运算
剩余运算
将单个数变成数组
展开运算
将数组变成单个
caller 与callee
caller
函数的宿主环境----函数在哪里调用
null 全局
fa 在fa函数里调用
callee
arguments 所在的函数本身