JS 高程7 函式表示式(1)

2022-07-05 14:54:12 字數 957 閱讀 4094

定義函式的兩種常見的方法:

1 . 函式宣告

2. 函式表示式

# 差異

(1)函式宣告 ,具有函式宣告提公升的特徵。

(2)函式宣告的函式的name屬性為函式的名稱;使用函式表示式定義的函式在es5中,name屬性為空字串,在es6中為函式的名稱。

#  函式宣告提公升

函式宣告

1 sayhello();//

在函式宣告之前呼叫函式不會報錯,因為函式宣告提公升。

2function

sayhello()

函式表示式

1 sayhello();//

typeerror: sayhello is not a function 使用函式表示式的方法定義函式,在變數宣告函式之前呼叫函式會報錯。

2var sayhello = function

()6 sayhello();//

在這裡呼叫不會報錯。

# 注意以下這種情況

1

//不要這樣做。由於函式宣告提公升的原因,以下**在ecmascript中屬於無效語法,瀏覽器嘗試修正的錯誤的做法不一致。p176

2var flag = true;3

if(flag)

7 }else11}

12 sayhi();//

嚴格模式下會報錯。 referenceerror: sayhi is not defined

1

//可以這樣做,使用函式表示式。

2var flag = true;3

varsayhi;4if

(flag)

8 }else12}

13 sayhi();

JS函式表示式

1.遞迴 function digui num else var d digui digui null d 3 改進 用arguments.callee num 1 代替 digui num 1 arguments.callee 是指向引數所在的函式的指標,code如下 function digui...

JS 函式表示式

引數1,引數2.call使用語法 函式名 方法名.call 物件,屬性1,屬性2.作用 可以改變this的指向 不同點 引數傳遞方式不同 bind是複製乙個方法或者函式 xw.say.call xh 注 math.random 返回介於 0 包含 1 不包含 之間的乙個隨機數 函式中幾個屬性 了解 ...

JS高階程式設計7 函式表示式

函式宣告提公升的概念 相對於函式表示式 176 不要這樣做 函式體內是宣告函式 因為函式相對於表示式是提公升的,會出現類似於函式過載的現象,zhezhong 語法是無效的 if condition else 可以這樣做 函式體內是函式表示式 var sayhi if condition else 遞...