Javascript函數執行是Javascript程序的基本單位,可以用于在代碼中封裝可重用的代碼塊,真正實現了“一次編寫,多次使用”的目標。一個Javascript函數可以包含任意數量的語句,通過函數的參數在需要的地方傳入變量,以及通過函數的返回值將變量值傳遞回調用點。
// 一個簡單的Javascript函數實現 function add(a, b) { return a + b; }
在上面的例子中,我們定義了一個名為add的函數,它接受兩個參數a和b,并返回它們的和。
當Javascript引擎在執行Javascript代碼時,遇到定義了的函數時,只是對該函數進行了初步的解析,而不會執行函數內部的代碼。只有當該函數被調用時,才會真正開始執行函數內部的代碼。
// 調用函數 let sum = add(1, 2); console.log(sum); // 3
在上面的例子中,我們調用了函數add,并給它傳遞了兩個參數1和2。函數內部的代碼執行后,返回了3,賦值給變量sum并打印輸出。
Javascript函數具有作用域鏈的特性,在調用函數時,Javascript引擎會定義一個新的函數執行上下文,包含該函數內部定義的變量和函數,同時也會引用函數定義時的作用域鏈。
let a = 10; function foo() { let b = 20; console.log(a + b); } foo(); // 30
在上面的例子中,當執行函數foo時,函數執行上下文的作用域鏈會包含全局變量a和函數內部定義的變量b,因此在函數中可以訪問和使用變量a和b。
Javascript的函數執行還支持遞歸調用,即函數內部調用自身。遞歸函數通常使用條件判斷語句進行遞歸出口的判斷,防止函數無限循環調用導致棧溢出。
// 遞歸函數實例:階乘(factorial) function factorial(n) { if (n< 2) { return 1; } else { return n * factorial(n - 1); } } console.log(factorial(5)); // 120
在上面的例子中,我們定義了一個遞歸函數factorial,該函數實現求給定數字的階乘。在函數內部,當n<2時,函數返回1,表示階乘計算完畢,否則將n乘以(factorial(n-1))的結果返回。
綜上所述,Javascript函數執行是Javascript程序設計的基礎,實現了程序的可重用性和模塊化設計,同時也為Javascript開發提供了更為靈活的編程模式和語言特性,值得我們深入學習和研究。