JavaScript 函數
函數是由事件驅動的或者當它被調用時執行的可重複使用的代碼塊。
實例
JavaScript 函數語法
函數就是包裹在花括弧中的代碼塊,前面使用了關鍵字 function:
{
// 執行代碼
}
當調用該函數時,會執行函數內的代碼。
可以在某事件發生時直接調用函數(比如當用戶點擊按鈕時),並且可由 JavaScript 在任何位置進行調用。
![]() |
JavaScript 對大小寫敏感。關鍵字 function 必須是小寫的,並且必須以與函數名稱相同的大小寫來調用函數。 |
---|
調用帶參數的函數
在調用函數時,您可以向其傳遞值,這些值被稱為參數。
這些參數可以在函數中使用。
您可以發送任意多的參數,由逗號 (,) 分隔:
當您聲明函數時,請把參數作為變數來聲明:
{
代碼
}
變數和參數必須以一致的順序出現。第一個變數就是第一個被傳遞的參數的給定的值,以此類推。
實例
上面的函數在按鈕被點擊時會提示 "Welcome Harry Potter, the Wizard"。
函數很靈活,您可以使用不同的參數來調用該函數,這樣就會給出不同的消息:
實例
根據您點擊的不同的按鈕,上面的例子會提示 "Welcome Harry Potter, the Wizard" 或 "Welcome Bob, the Builder"。
帶有返回值的函數
有時,我們會希望函數將值返回調用它的地方。
通過使用 return 語句就可以實現。
在使用 return 語句時,函數會停止執行,並返回指定的值。
語法
{
var x=5;
return x;
}
上面的函數會返回值 5。
注意: 整個 JavaScript 並不會停止執行,僅僅是函數。JavaScript 將繼續執行代碼,從調用函數的地方。
函數調用將被返回值取代:
myVar 變數的值是 5,也就是函數 "myFunction()" 所返回的值。
即使不把它保存為變數,您也可以使用返回值:
"demo" 元素的 innerHTML 將成為 5,也就是函數 "myFunction()" 所返回的值。
您可以使返回值基於傳遞到函數中的參數:
實例
計算兩個數字的乘積,並返回結果:
"demo" 元素的 innerHTML 將是:
在您僅僅希望退出函數時 ,也可使用 return 語句。返回值是可選的:
如果 a 大於 b,則上面的代碼將退出函數,並不會計算 a 和 b 的總和。
局部 JavaScript 變數
在 JavaScript 函數內部聲明的變數(使用 var)是局部變數,所以只能在函數內部訪問它。(該變數的作用域是局部的)。
您可以在不同的函數中使用名稱相同的局部變數,因為只有聲明過該變數的函數才能識別出該變數。
只要函數運行完畢,本地變數就會被刪除。
全局 JavaScript 變數
在函數外聲明的變數是全局變數,網頁上的所有腳本和函數都能訪問它。
JavaScript 變數的生存期
JavaScript 變數的生命期從它們被聲明的時間開始。
局部變數會在函數運行以後被刪除。
全局變數會在頁面關閉後被刪除。
向未聲明的 JavaScript 變數分配值
如果您把值賦給尚未聲明的變數,該變數將被自動作為 window 的一個屬性。
這條語句:
將聲明 window 的一個屬性 carname。
非嚴格模式下給未聲明變數賦值創建的全局變數,是全局對象的可配置屬性,可以刪除。
var var1 = 1; // 不可配置全局屬性 var2 = 2; // 沒有使用 var 聲明,可配置全局屬性 console.log(this.var1); // 1 console.log(window.var1); // 1 delete var1; // false 無法刪除 console.log(var1); //1 delete var2; console.log(delete var2); // true console.log(var2); // 已經刪除 報錯變數未定義