立即執行函式,宣告式函式

2021-07-14 13:36:58 字數 747 閱讀 9437

這種寫法叫立即執行函式。一般我們定義乙個函式,如:

function a()

這個函式不會執行,如果需要定義完乙個函式,馬上執行。就要寫成這樣的:

(function a())();

最後面的小括號表示呼叫的意思,函式被乙個括號包裹起來表示這是乙個整體,如果沒有這個括號,js引擎可能以為這個是函式宣告。這種寫法並不是唯一的。

!function a()();

-function a()();

+function a()();

~function a()();

這些都是,前面的符號只要告訴js引擎這一行是乙個表示式,而不是函式宣告都可以。

var a=function(){};

function a(){}

var foo=function(){}稱之為函式表示式 定義函式,function foo(){}稱之為函式語句 定義函式。

後者會預先編譯;前者則必須執行後面語句後才會對foo新增呼叫。

這兩種寫法還是有區別的,解析的順序不同。js永遠先解析宣告式函式,然後再解析var宣告的變數。還是以上面的寫個例子:

//如果這裡呼叫a();肯定是宣告式函式執行,彈出2。如果沒有宣告式函式,則報錯。

var a=function(alert('1')){};

//如果這裡呼叫a(),彈出1。var宣告的變數會覆蓋宣告式函式。

function a();//永遠先解析

立即執行函式,宣告式函式

這種寫法叫立即執行函式。一般我們定義乙個函式,如 function a 這個函式不會執行,如果需要定義完乙個函式,馬上執行。就要寫成這樣的 function a 最後面的小括號表示呼叫的意思,函式被乙個括號包裹起來表示這是乙個整體,如果沒有這個括號,js引擎可能以為這個是函式宣告。這種寫法並不是唯一...

立即執行函式

函式宣告 函式表示式 匿名函式 函式宣告 function fnname 使用function關鍵字宣告乙個函式,再指定乙個函式名,叫函式宣告。函式表示式 var fnname function 使用function關鍵字宣告乙個函式,但未給函式命名,最後將匿名函式賦予乙個變數,叫函式表示式,這是最...

立即執行函式

一 立即執行函式 立即執行函式,顧名思義,就是能立即執行的函式 一般的,函式的執行都遵循著先宣告,後呼叫的原則,無論是函式表示式還是函式宣告 1 函式宣告 宣告 function sayhello 呼叫 sayhello hello 2 函式表示式 宣告 var sayhello function ...