函數

Frontend SELF TW
等級 35 , 課堂 2
開放

3.1 宣告函數

函數是 JavaScript 中的主要建構塊之一。它們讓你可以組織代碼、重複使用邏輯並創建更複雜的結構。讓我們來看看三種主要的函數宣告與使用方式:函數宣告、函數表達式和箭頭函數。

函數宣告 是創建具名函數的一種方法,可以在稍後調用。這些函數會被提升(hoisted)到所在作用域的頂端,這意味著你可以在代碼中宣告之前就調用它們。

語法:

    
      function name (arguments) {
        // function body
      }
    
  

用法示例:

JavaScript
    
      // 宣告函數
      function greet(name) {
        return `Hello, ${name}!`;
      }

      // 調用函數
      console.log(greet('Alice')); // 輸出: Hello, Alice!
    
  

3.2 函數表達式

函數表達式創建的匿名函數(無名稱函數)可以被賦值給變量。這類函數不會被提升,所以只能在宣告後調用。

語法:

    
      const name = function (arguments) {
        // function body
      }
    
  

用法示例:

JavaScript
    
      // 函數表達式

      const greet = function(name) {
        return `Hello, ${name}!`;
      };

      // 調用函數
      console.log(greet('Bob')); // 輸出: Hello, Bob!
    
  

3.3 箭頭函數

箭頭函數 (arrow functions) 是一種簡潔的函數宣告方法,同時保存了父作用域的this上下文。箭頭函數沒有自己的this,所以在事件處理程式和陣列方法中特別有用。

語法:

    
      const name = (arguments) => {
        // function body
      }
    
  

如果函數只接受一個參數,可以省略圓括號。如果函數返回一個表達式,可以省略大括號和return關鍵字。

示例 1: 完整寫法

JavaScript
    
      // 箭頭函數

      const greet = (name) => {
        return `Hello, ${name}!`;
      };

      // 調用函數
      console.log(greet('Charlie')); // 輸出: Hello, Charlie!
    
  

示例 2: 簡寫方式

JavaScript
    
      // 單參數單表示式的箭頭函數
      const greet = name => `Hello, ${name}!`;

      // 調用函數
      console.log(greet('Dana')); // 輸出: Hello, Dana!
    
  

3.4 不同函數宣告方法的比較

提升 (hoisting):

  • 函數宣告: 函數會被提升,可以在宣告前調用
  • 函數表達式箭頭函數: 不會被提升,只能在宣告後調用

this 上下文:

  • 函數宣告函數表達式: 有自己的 this 上下文
  • 箭頭函數: 沒有自己的 this,上下文繼承自父作用域

撰寫便利性:

  • 箭頭函數: 更為簡潔,常用於短小的函數和回調
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION