js中函式表示式和自執行函式表示式的用法總結

2021-09-11 02:21:51 字數 2821 閱讀 3136

立即呼叫函式表示式

//以下情形並無差別

varcount100

=function

getcount100()

();//100

var count200 =

(function

getcount200()

)();

//200,加小括號和count100沒有區別

var count =

(function

getcount

(n))

(300);

//300,傳參的情形

//不賦值變數,函式體加小括號,自動執行

(function

aaa())

();// aaa

console.

log(aaa)

;//aaa is not defined

//乙個匿名函式,函式體不加小括號,是不能自動執行的

function

bbb()(

);//unexpected token )

//函式宣告置於小括號中,沒有自執行

(functionfn(

));console.

log(

"fn res is "

+ fn)

;// fn is not defined

//函式宣告置於小括號中,且自執行

(functionfn(

)())

;//輸出aaa

console.

log(

"fn res is "

+ fn)

;// fn is not defined

//函式宣告置於小括號中,且自執行,注意,負責執行的一對小括號移到了外部

(functionfn(

))()

;//輸出aaa

console.

log(

"fn res is "

+ fn)

;// fn is not defined

//函式宣告置於小括號中,函式未執行但將其賦值給fn(fn

=function

aaa())

console.

log(

"fn res is "+fn

());

//fn res is bbb

//函式宣告置於小括號中,函式執行,並且將其賦值給fn(fn

=function

aaa()(

));//輸出aaa

console.

log(

"fn res is "

+ fn)

;//fn res is bbb

//函式宣告置於小括號中,將其賦值給fn,並且在外部執行之(注意末尾小括號位置)(fn

=function

aaa())

();//輸出aaa

console.

log(

"fn res is "+fn

());

//再次輸出aaa,並輸出fn res is bbb

// 匿名函式在自執行,注意末尾小括號位置

(function()

)();

//輸出aaa

// 匿名函式在自執行,可見和上邊的例子效果一致

(function()

());

//輸出aaa

//在括號外賦值的函式表示式,例一。以下三例的結果是一致的

varfn

=function

aaa()(

);console.

log(

"fn is res "

+ fn)

;//fn is res bbb

//例二

var fn =

(function

aaa())

();console.

log(

"fn is res "

+ fn)

;//fn is res bbb

//例三

var fn =

(function()

)();

console.

log(

"fn is res "

+ fn)

;//fn is res bbb

-------

//正常的函式,注意fn的name屬性自動設定為fn

functionfn(

);console.

log(fn.name)

;//fn

console.

log(

"fn is res "+fn

());

//fn is res bbb

//函式表示式,注意fn的name屬性是fn

varfn

=function()

;console.

log(fn.name)

;//fn

console.

log(

"fn is res "+fn

());

//fn is res bbb

//函式表示式,注意fn的name屬性是aaa

varfn

=function

aaa();

console.

log(fn.name)

;//aaa

console.

log(

"fn is res "+fn

());

//fn is res bbb

對於如此多的不同情形,可以總結如下:

js中函式表示式和自執行函式表示式的用法總結

立即呼叫函式表示式 以下情形並無差別 var count100 function getcount100 100 var count200 function getcount200 200,加小括號和count100沒有區別 var count function getcount n 300 300...

function ,自執行函式表示式

如題為自執行函式表示式。在這種情況下,解析器在解析function關鍵字的時候,會將相應的 解析成function表示式,而不是function宣告。下面2個括弧 都會立即執行 function 推薦使用這個 function 但是這個也是可以用的 由於括弧 和js的 異或,逗號等操作符是在函式表示...

立即執行函式表示式 自執行函式

立即執行函式表示式,大部分人也稱為自執行函式。匿名函式 function 具名函式 function log 自執行函式的傳參 function add a,b 1,2 返回值let fn function add a,b 2,4 console.log fn 自執行函式也可以傳遞函式作為引數var...