天天看點

JavaScript 函數

函數是由事件驅動的或者當它被調用時執行的可重複使用的代碼塊。

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>測試執行個體</title>

<script>

function myFunction()

{

alert("Hello World!");

}

</script>

</head>

<body>

<button onclick="myFunction()">點我</button>

</body>

</html>

函數就是包裹在花括号中的代碼塊,前面使用了關鍵詞 function:

function functionname()

    // 執行代碼

當調用該函數時,會執行函數内的代碼。

可以在某事件發生時直接調用函數(比如當使用者點選按鈕時),并且可由 JavaScript 在任何位置進行調用。

JavaScript 函數

JavaScript 對大小寫敏感。關鍵詞 function 必須是小寫的,并且必須以與函數名稱相同的大小寫來調用函數。

在調用函數時,您可以向其傳遞值,這些值被稱為參數。

這些參數可以在函數中使用。

您可以發送任意多的參數,由逗号 (,) 分隔:

myFunction(argument1,argument2)

當您聲明函數時,請把參數作為變量來聲明:

function myFunction(var1,var2)

代碼

變量和參數必須以一緻的順序出現。第一個變量就是第一個被傳遞的參數的給定的值,以此類推。

<p>點選這個按鈕,來調用帶參數的函數。</p>

<button onclick="myFunction('Harry Potter','Wizard')">點選這裡</button>

function myFunction(name,job){

alert("Welcome " + name + ", the " + job);

上面的函數在按鈕被點選時會提示 "Welcome Harry Potter, the Wizard"。

函數很靈活,您可以使用不同的參數來調用該函數,這樣就會給出不同的消息:

<button onclick="myFunction('Bob','Builder')">點選這裡</button>

根據您點選的不同的按鈕,上面的例子會提示 "Welcome Harry Potter, the Wizard" 或 "Welcome Bob, the Builder"。

有時,我們會希望函數将值傳回調用它的地方。

通過使用 return 語句就可以實作。

在使用 return 語句時,函數會停止執行,并傳回指定的值。

    var x=5;

    return x;

上面的函數會傳回值 5。

注意: 整個 JavaScript 并不會停止執行,僅僅是函數。JavaScript 将繼續執行代碼,從調用函數的地方。

函數調用将被傳回值取代:

var myVar=myFunction();

myVar 變量的值是 5,也就是函數 "myFunction()" 所傳回的值。

即使不把它儲存為變量,您也可以使用傳回值:

document.getElementById("demo").innerHTML=myFunction();

"demo" 元素的 innerHTML 将成為 5,也就是函數 "myFunction()" 所傳回的值。

您可以使傳回值基于傳遞到函數中的參數:

計算兩個數字的乘積,并傳回結果:

function myFunction(a,b)

return a*b;

document.getElementById("demo").innerHTML=myFunction(4,3);

"demo" 元素的 innerHTML 将是:

12

在您僅僅希望退出函數時 ,也可使用 return 語句。傳回值是可選的:

if (a>b)

return;

x=a+b

如果 a 大于 b,則上面的代碼将退出函數,并不會計算 a 和 b 的總和。

在 JavaScript 函數内部聲明的變量(使用 var)是局部變量,是以隻能在函數内部通路它。(該變量的作用域是局部的)。

您可以在不同的函數中使用名稱相同的局部變量,因為隻有聲明過該變量的函數才能識别出該變量。

隻要函數運作完畢,本地變量就會被删除。

在函數外聲明的變量是全局變量,網頁上的所有腳本和函數都能通路它。

JavaScript 變量的生命期從它們被聲明的時間開始。

局部變量會在函數運作以後被删除。

全局變量會在頁面關閉後被删除。

如果您把值賦給尚未聲明的變量,該變量将被自動作為 window 的一個屬性。

這條語句:

carname="Volvo";

将聲明 window 的一個屬性 carname。

非嚴格模式下給未聲明變量指派建立的全局變量,是全局對象的可配置屬性,可以删除。