函數是可重復使用的代碼塊。
可以把它想象成一個小機器,輸入一些東西(參數),然后輸出一些東西(返回值)。
如何定義和調用函數?
定義一個函數很簡單,你可以使用 function
關鍵字。下面是一個簡單的例子:
// 定義一個函數 function sayHello() { console.log('Hello, world!'); } // 調用這個函數 sayHello();
在這個例子中,我們定義了一個名為 sayHello
的函數,它會在被調用時打印出 "Hello, world!"。
注意這里,使用大括號{}包裹了函數里的代碼。
初學者要仔細前面提過的,JavaScript 區分大小寫,所以這里是全小寫的function
。
參數和返回值
函數可以接受參數,也可以返回值。
參數是你傳遞給函數的輸入,而返回值是函數的輸出。
來看一個例子:
// 定義一個帶參數的函數 function add(a, b) { return a + b; } // 調用這個函數,并傳遞參數 let result = add(5, 3); console.log(result); // 輸出 8
在這個例子中,add
函數接受兩個參數 a
和 b
,并返回它們的和。
在使用 add
函數時,為這個函數傳入參數值 5 和 3,并得到返回結果 8。
參數的類型
參數本質上按值傳遞給函數,因此,即使函數里面的代碼給傳遞給函數的參數賦了新值,這個改變也不會反映到全局或調用該函數的代碼中。
但是如果將對象作為參數傳遞,而函數改變了這個對象的屬性,這樣的改變對函數外部是可見的。
來看一個例子:
function myFunc(theObject) { theObject.name = "Apple"; } const fruit = { name: "Orange", location: "Jiangxi", star: 5, }; console.log(fruit.make); // "Orange" myFunc(fruit); console.log(fruit.make); // "Apple"
在這個例子中,myFunc
函數改變了對象的 name 值,這個改變反應到了變量 fruit
中。
如果將數組作為參數傳遞,而函數改變了這個數組的值,這樣的改變對函數外部也同樣可見。
來看一個例子:
function myFunc(theArr) { theArr[0] = 30; } const arr = [45]; console.log(arr[0]); // 45 myFunc(arr); console.log(arr[0]); // 30
在這個例子中,myFunc
函數改變了數組一個數的值,這個改變同樣反應到了數組 arr
中。
一個例子
定義函數:使用 function
關鍵字,后面跟著函數名和小括號。小括號中包含參數,多個參數用逗號分隔。函數體用大括號 {}
包裹。
調用函數:直接使用函數名加上小括號。如果函數有參數,在小括號中傳遞相應的參數值。
參數:參數是函數的輸入,可以在定義函數時指定。在調用函數時傳遞實際的值。
返回值:使用 return
關鍵字返回函數的輸出。如果函數沒有 return
語句,通常理解為這個是一個沒有返回的函數,但實際上它會返回 undefined
。
再來看一個稍微復雜一點的例子:
// 定義一個函數,計算圓的面積 function calculateArea(radius) { if (radius <= 0) { return 'Radius must be greater than zero'; } return Math.PI * radius * radius; } // 調用這個函數 let area = calculateArea(5); console.log(area); // 輸出 78.53981633974483
在這個例子中,calculateArea
函數接受一個參數 radius
,并返回圓的面積。
如果傳遞的半徑小于等于 0,函數會返回一個錯誤消息。
總結
?? 函數是可重復使用的代碼塊。
?? 使用 function
關鍵字定義函數。
?? 使用 return
關鍵字返回函數的輸出。
該文章在 2024/10/19 12:22:25 編輯過