函式宣告與函式表示式之間的區別

2021-10-05 23:33:28 字數 534 閱讀 3871

函式宣告:在執行**之前會先讀取函式宣告(即函式宣告提公升)

例:

if

(condition)

}else

}//不要這樣寫

上面這段**等價於:

function

sayhi()

function

sayhi()

if(condition)

else

大多數瀏覽器會返回第二個宣告,忽略condition; firefox 會在 condition 為 true 時返回第乙個宣告。

函式表示式:在使用前必須先賦值

//可以這樣做

var sayhi;

if(condition)

sayhi()

}else

sayhi()

}

函式宣告與函式表示式的區別

一 函式宣告中函式名是必須的 函式表示式中則是可選的 函式宣告 function sum a,b alert sum 1,2 函式表示式 var s function sum a,b alert s 1,2 var s function a,b alert s 1,2 以上兩種都可以 二 用函式宣告...

函式宣告與函式表示式的區別

無論在哪兒定義函式,只要是外層函式並且滿足不被包裹,就都可以進行全域性範圍的呼叫 function foo 在函式體內部的函式宣告無法提公升到全域性,只能提公升到函式體內頂部 塊級作用域空間 function test test 1 test2 uncaught referenceerror tes...

簡單區別函式宣告與函式表示式

函式宣告 function a 函式表示式 var a 後面的就是函式表示式 var a function 兩者主要的區別就是宣告提前 函式宣告不僅會提公升宣告,還會提公升定義.test 呼叫成功 function test 而函式表示式只會提公升宣告,不會提公升定義 test 有test這個變數,...