函数:
函数声明:function functionName () {…};首先用function声明这是一个函数,指定的函数名在function 关键字后,这叫函数声明。
Javascript引擎在解析javascript代码时会‘函数声明提升',就是把函数提升到作用域的最前方,即在同作用域内函数调用可在声明之前。
函数表达式: var fnName = function () {…};首先用function声明这是一个函数,并将匿名函数赋予一个变量,叫函数表达式。
Javascirtp引擎执行到它声明所在行时,不会进入,只有调用时,才会进入函数内部由上至下执行。
匿名函数:function () {}; 匿名函数属于函数表达式,一般写在事件中和闭包中(可惜闭包我还不怎么会)。
立即执行函数:
在函数表达式后面加括号就能立即调用该函数,即立即执行函数。
但是函数声明不行。
正确:
var functionName = function(){
...
}()
//这个函数将立即执行
错误:
function(){
...
}()
//语法错误
所以,一些插件经常这样写:
( function (window,undefined){
…jquery代码…
} )(window)
这种方法是用 括号()将函数声明包裹,变成了函数表达式,于是语法正确了。并能够立即执行。