# [學習筆記] Javascript 函數聲明式 vs 函數表達式 ### :small_blue_diamond: 函數聲明式 vs 函數表達式 在 JavaScript 中,有兩種常見的***創建函數***的方式: 1. 函數聲明(function declaration) 2. 函數表達式(function expression) 它們之間有一些重要的差異: #### 1. 函數聲明式(Function Declaration) * 使用 function 關鍵字聲明函數,後面跟著函數的名稱。 * 函數聲明被提升(hoisted)到作用域的頂部,可以在聲明之前調用。 * 函數聲明可以在全局作用域或其他函數內部進行聲明。 * 函數聲明的名稱是可選的,但通常會給函數命名以便於引用。 ```javascript! function add(a, b) { return a + b; } ``` :::info 以下是一些使用函數聲明式的優點: * **可讀性**:函數聲明清晰地將函數名稱與函數體結合在一起,使程式碼易於閱讀和理解。 * **提升(Hoisting)**:函數聲明會被提升到作用域的頂部,所以可以在聲明之前調用函數。 * **可重複聲明**:使用函數聲明可以多次在同一作用域內聲明同名函數,後面的聲明將覆蓋前面的聲明。 * **常用於全域作用域**:如果你需要在全域作用域中定義一個函數,函數聲明是一個常見且直觀的方式。 ::: #### 2. 函數表達式(Function Expression) * 將函數賦值給一個變量,或作為另一個函數的參數。 * 函數表達式不會被提升到作用域的頂部,只有在表達式被執行到的時候才能被使用。 * 函數表達式可以在全局作用域或其他函數內部進行。 * 函數表達式可以使用匿名函數(沒有名稱)或具名函數(有名稱)。 ```javascript! var add = function(a, b) { return a + b; }; ``` :::info 以下是一些使用函數表達式的優點: * 函數作為變量值:如果你需要將函數賦值給變量,以便進行更靈活的操作,則函數表達式是一個適當的選擇。 * 即時執行的函數:如果你需要立即執行一個函數並將其結果分配給變量,可以使用立即執行函數表達式(IIFE)。 :::
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up