對學習JavaScript函數作個總結javascript
函數分三種情形java
(1)函數聲明函數
利用 function聲明一個函數,格式爲 function 函數名() { }學習
JavaScript在解析代碼時會"函數聲明提高"當前執行做用域上的函數聲明。即函數的調用不管在聲明的前邊或是後邊,都不影響函數的調用。code
fnName(); function fnName(){ ... }//正常,由於‘提高’了函數聲明,函數調用可在函數聲明以前
(2)函數表達式ip
var 函數名 = function(){ } 利用function聲明一個匿名函數,而後將它賦給一個變量。ci
函數表達式必須等到Javascirtp引擎執行到它所在行時,纔會從上而下一行一行地解析函數表達式.c此處函數必須在賦值以後才能被調用。作用域
fnName(); var fnName=function(){ ... }//報錯,變量fnName還未保存對函數的引用,函數調用必須在函數表達式以後
函數表達式能夠在後面加括號,表示當即調用,io
var fnName=function(){ alert('Hello World'); }();//函數表達式後面加括號,當javascript引擎解析到此處時能當即調用函數
(3)匿名函數function
function() { } 利用function聲明一個函數,沒有函數名。