從上一節“JavaScript函數的定義”我們知道,如果一個函數僅僅是定義而沒有被調用的話,則函數本身是不會執行的。那麼這節課我們來給大家講解一下如何調用JavaScript函數。
這一節非常重要,如果你曾經學過其他編程語言(如C和Java),覺得JavaScript函數大同小異的話,那你就錯了。JavaScript函數跟其他編程語言函數最大的區別就在於它調用方式很多,而且很靈活。
常用的函數調用方式有4種:
下面,我們給大家詳細介紹一下這4中函數調用方式。
JS函數簡單調用,也被稱為直接調用。該方法一般比較適用於沒有返回值的函數。也就是說相當於執行函數中的語句集合。
語法:
函數名(實參1,實參2,….實參n);
說明:
這裡講解是調用函數的方式,不是定義函數的方式,別搞混了。如何定義函數,我們在上一節已經詳細講解了,大家要是忘了的話,記得回去翻翻。
調用函數時的實參取決於定義函數時的形參。
舉例:
在線測試<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript"> //定義函數 function alertSum() { //計算1+2+3+…+10的和 var sum=0; for(var i=1;i<=10;i++) { sum=sum+i; } alert(sum); } //調用函數 alertSum(); </script> </head> <body> </body> </html>
在浏覽器預覽效果如下:
在表達式中調用函數的方式,一般適用於有返回值的函數,然後函數的返回值參與表達式的計算。通常該方式還會和輸出語句(如document.write()、alert()等)搭配使用。
舉例:判斷給定的年份是否閏年
在線測試<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript"> //定義函數 function isLeapYear(year) { //判斷閏年的條件 if((year%4==0)&&(year%100!=0)||(year%400==0)) { return year+"年是閏年"; } else { return year+"年不是閏年"; } } //調用函數 document.write(isLeapYear(2015)); </script> </head> <body> </body> </html>
在浏覽器預覽效果如下:
分析:
可能學到這裡,初學者對函數還不是很了解,不過我們可以從課程的例子好好琢磨思考一下,然後再加上我們提供的訓練題,很快你就能掌握了。
JavaScript是基於事件模型的程序語言,頁面加載、用戶點擊、移動光標等都會產生事件。當事件產生時,JavaScript就可以調用某個函數來針對這個事件做出響應。
額,初學者可能學到這裡就有懵了,因為不知道啥是事件。沒關系,那麼久了我都那麼照顧大家,這次也不例外。不懂沒關系,在這裡,我們只是先給大家講一下有“在事件響應中調用函數”這麼一回事,免得到後期我們還得獨立章節來講解這個知識點,搞得教程凌亂。
對於JavaScript事件響應問題,我們在後續章節會給大家詳細講解。
舉例:
在線測試<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript"> function alertMes() { alert(" 學習網JavaScript入門教程"); } </script> </head> <body> <input type="button" onclick="alertMes()" value="提交"/> </body> </html>
在浏覽器預覽效果如下:
我們點擊按鈕就會彈出對話框,效果如下:
這就是所謂的在事件響應中調用函數,這種方式非常實用。上面實例中的事件是“鼠標的點擊事件”。
函數除了可以在事件響應中調用外,還可以通過超鏈接來調用函數。
語法:
<a href="javascript:函數名"></a>
說明:
在超鏈接中調用函數,指的就是在a標簽的href屬性中使用“javascript:函數名”來調用函數。當用戶點擊該超鏈接時,就會執行調用的相應函數。
舉例:
在線測試<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript"> function mes() { alert("她:我愛helicopter。\n我:oh~my,= =?!"); } </script> </head> <body> <a href="javascript:mes()">表白對話</a> </body> </html>
在浏覽器預覽效果如下:
當我們點擊了超鏈接之後,就會調用函數mes(),效果如下:
分析:
這裡使用轉義字符“\n”來使得alert()函數的內容換行。大家別忘了JavaScript轉義字符喔。