函数
js执行时会有两个阶段———检查装载 和 执行阶段
检查装载:会先检测代码的语法错误,进行变量、函数的声明
执行阶段:变量的赋值、函数的调用等,都属于执行阶段。
函数声明和函数表达式,函数声明会有函数声明提升,函数表达式不会有变量提升,在第一阶段时,会进行对变量和函数的声明,但是此时函数表达式中函数还未赋值给变量,在赋值语句之前执行函数就会报错,说不是一个function
匿名函数有两种执行方式,调用和自执行,自执行的匿名函数有很多种
调用:声明一个匿名函数赋值给某一个事件,或者使用匿名函数表达式,将匿名函数赋值给一个变量
(function(){
//这里是块级作用域
})();
以上代码定义并立即调用了一个匿名函数。经函数声明包含在一对圆括号中,表示它实际上是一个函数表达式。而紧随其后的另一对圆括号会立即调用这个函数。
自执行函数,即定义和调用合为一体。我们创建了一个匿名的函数,并立即执行它,由于外部无法引用它内部的变量,因此在执行完后很快就会被释放,关键是这种机制不会污染全局对象。