1、匿名函数
function (){}
2、函数表达式
var add= function(){}
注:函数表达式为变量赋值,故必须先声明再调用,否则报错
3、函数声明
function add(){}
注:函数声明,由于提升作用,故可以在声明前调用
4、自动执行函数
a、通过运算符实现自动执行函数
!function(){}
注:可以使用多种运算符开头但一般用 !
b、通过方法体后跟 ()
function(){}()
注:不建议使用该方式,无法表明函数与之后的()的整体性
c、通过括号包裹整个方法调用,即用括号包裹 b 方式
(function(){}())
注:推荐使用该方式,能够将匿名函数与调用的()为一个整体
5、函数的内部属性
a、Arguments对象
I、 作用:用于储存调用函数时的所有实参
当调用函数,并用实参赋值时,实际上参数列表已经保存到arguments数组中,可以在函数中,使用arguments[n]的形式调用,n从0开始
II、arguments数组的个数,取决于实参列表,与形参无关。但是,一旦第n个位置的形参、实参、arguments都存在时,形参将与arguments绑定,同步变化。即,在函数中,修改形参的值,arguments也会改变,反之亦成立。
III、arguments.callee(),调用自身函数,即递归
在函数里面,可以使用arguments.callee()调用函数本身。
b、location对象
c、history对象