JavaScript函數是一段可以重復使用的代碼塊,用于執行特定的任務。函數封裝了一定的邏輯,可以接收輸入參數并返回結果,使得代碼更加模塊化,可讀性更高。
函數聲明可以使用function關鍵字來創建,通常包括函數名、參數列表和函數體:
function myFunction(param1, param2) {// 函數體return result; // 可選的返回值
}
函數聲明可以在任何JavaScript代碼中進行,并且可以在聲明之前或之后調用函數。
函數調用是指在需要使用該函數時執行相應代碼塊的過程。函數的調用可以使用函數名并傳入實際參數:
var result = myFunction(value1, value2);
參數可以是任意JavaScript表達式,包括變量、常量、字符串等。當函數被調用時,參數將被分配為函數內部的局部變量。
JavaScript還支持匿名函數、箭頭函數等多種函數形式,以及更高級的函數處理工具,如閉包、作用域鏈等。
在一個函數內聲明一個可以供全局使用的變量,有兩種方法:
- 使用全局變量:
在函數內使用var聲明一個變量,不加var則創建的是全局變量。例如:
function myFunction() {myGlobalVar = "Hello"; // 不加var,創建全局變量
}myFunction();
alert(myGlobalVar); // "Hello"
使用全局變量需要注意,它可能會被其他代碼修改,導致不可預測的行為。因此,建議使用方法2。
- 使用閉包:
通過閉包,可以在一個函數內創建一個私有變量,并返回一個函數,使得該函數可以訪問私有變量。通過將該返回的函數賦值給全局變量,可以在全局范圍內訪問私有變量。例如:
function myFunction() {var myPrivateVar = "Hello"; // 定義私有變量return function() {return myPrivateVar; // 返回函數,訪問私有變量};
}var myGlobalVar = myFunction(); // 將返回的函數賦值給全局變量
alert(myGlobalVar()); // "Hello"
使用閉包能夠避免全局變量被誤修改的問題,同時可以隱藏函數內實現的細節。