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