一、默認函數

JavaScript提供了一些默認的函數

 

編碼函數escape():將非字母、數字字符轉換成ASCII

譯碼函數unescape():將ASCII碼轉換成字母、數字字符

求值函數eval()

數值判斷函數isNaN():判斷一個值是否為非數值類型

整數轉換函數parseInt():將不同進制(二、八、十六進制)的數值轉換成十進制整數

浮點數轉換函數parseFloat():將數值字串轉換成浮點數

1eval()函數

求值函數eval()的格式為:eval(<表達式>)

下面的例子將用eval函數得到一個文本框的值,

然后通過點擊按鈕彈出一個對話框將其輸出。

<script>

function show(obj)

{

    var str=eval("document.Form."+obj+".value");

    alert(“你輸入的姓名是:”+str);

}

</script>

<form name="Form" id="Form">

    姓名:

    <input name="name" type="text" value="韋小寶">

   <input name="button" type="button" value="提交" onClick=show("name")>

</form>

 

2isNaN()函數

數值判斷函數isNaN()的格式:isNaN(<>)

 

       下例中isNaN函數將判斷變量是否不是數值,并輸出判斷結果。

<script>

    var x=15;

    var y="黃雅玲";

    document.write("<LI>x不是數值嗎?",isNaN(x));

    document.write("<LI>y不是數值嗎?",isNaN(y));

</script>

3parseInt()函數

       整數轉換函數parseInt()的功能是將不同進制(二、八、十六)的數值轉換成十進制整數。

       格式:parseInt(數值字串[,底數])

       下面演示了將一個二進制數和一個十六進制數轉換成十進制數。

 

<script>

    document.write("1101<sub>2</sub>=",parseInt("1101",2),"<sub>10</sub><br>");

    document.write("BFFF<sub>16</sub>=",parseInt("BFFF",16),"<sub>10</sub><br>");

</script>

4parseFloat()函數

parseFloat()是浮點數轉換函數,它將數值字串轉換成浮點數。

       格式:parseFloat(數值字串)

<script>

    document.write(parseInt("3.1234A56"),"<br>");

    document.write(parseFloat("3.1234A56"),"<br>");

</script>

5、自定義函數

函數是獨立于主程序的、具有特定功能的一段程序代碼塊。

 

JavaScript函數定義

 

function 函數名(參數表,變元)

{

       函數體;

       return 表達式;

}

 

說明:

·當調用函數時,所用變量或字面量均可作為變元傳遞。

·函數由關鍵字function定義。

·函數名:定義自己函數的名字。

·參數表,是傳遞給函數使用或操作的值,其值可以是常量、變量或其它表達式。

·通過指定函數名(實參)來調用一個函數。

·函數的返回值是可選項,如果需要返回值,就必須使用return語句將值返回。

·函數名對大小寫是敏感的。

約定:

·函數名:易于識別(同變量命名規則)。

·程序代碼:模塊化設計。

·函數位置:按邏輯順序,集中置頂。

 

6、函數中的形式參數

在函數的定義中,我們看到函數名后有參數表,這些參數變量可能是一個或幾個。那么怎樣才能確定參數變量的個數呢?在JavaScript中可通過arguments.length來檢查參數的個數。

<script>

       function function_Name(exp1,exp2,exp3,exp4)

       Number =function_Name.arguments.length;

       if(Number>1)

           document.wrile(exp2);

       if(Number>2)

           document.write(exp3);

       if(Number>3)

           document.write(exp4);

    </script>

函數的調用

格式:函數名([參數[,參數...]])

下面的例子演示了沒有返回值的函數的定義及調用。

 

<script>

    function showName(name)

    {

       document.write("我是"+name);

    }

    showName("玲玲"); //函數調用

</script>

       上例中的function showName(name)為函數定義,其中括號內的name是函數的形式參數,這一點與C語言是完全相同的,而showName(“玲玲”)則是對函數的調用,用于實現需要的功能。

       下面的例子演示了帶返回值的函數的定義及調用。

<script>

    function showName(name)

    {

       str="我是" +name;

       return str;

    }

    document.write(showName("周伯通"));

</script>

 

二、函數與事件

事件驅動及事件處理的基本概念

 

       JavaScript是基于對象(Object-Based)的語言,這與Java不同,Java是面向對象的語言。而基于對象的基本特征,就是采用事件驅動(Event Driven)。通常鼠標或熱鍵的動作我們稱之為事件(Event),而由鼠標或熱鍵引發的一連串程序的動作,稱之為事件驅動(Event Driver)。而對事件進行處理的程序或函數,我們稱之為事件處理程序(Event Handler)。

事件處理程序

       瀏覽器響應某個事件,實現用戶的交互操作而進行的處理(過程)。

       事件處理程序的調用:瀏覽器等待用戶的交互操作,并在事件發生時,自動調用事件處理程序(函數),完成事件處理過程。

 

       HTML標簽屬性:

       格式:<tag on事件=“<語句組>|<函數名>”>

由于在JavaScript中對象事件的處理通常由函數(function)來完成,且其基本格式與函數一樣,所以可以將前面所介紹的所有函數作為事件處理程序。

格式如下:

function 事件處理名(參數表)

{

       事件處理語句集;

       ……

}

三、事件驅動

JavaScript事件驅動中的事件是通過鼠標或熱鍵的動作引發的。它主要有以下幾個事件

單擊事件onClick

改變事件onChange

選中事件onSelect

獲得焦點事件onFocus

失去焦點onBlur

載入文件onLoad

鼠標指示事件onMouseOver

提交事件onSubmit

1、單擊事件onClick

       當用戶單擊鼠標按鈕時,產生onClick事件。同時onClick指定的事件處理程序或代碼將被調用執行。通常在下列基本對象中產生單擊事件:

button(按鈕對象)

checkbox(復選框)或(檢查列表框)

radio(單選鈕)

reset buttons(重要按鈕)

submit buttons(提交按鈕)

比如,可以通過下面的按鈕激活change()函數,當然change()函數是需要另外提供的:

 

<form>

    <input type="button" value=“” onClick="change()">

</form>

  在onClick等號后,可以使用自己編寫的函數作為事件處理程序,也可以使用JavaScript的內部函數,還可以直接使用JavaScript的代碼等。

<body>

    <form>

       請輸入基本資料:<br>

       姓名:

       <input type="text" name="usr" size="8">

       <input type="button" value="請單擊"               onClick="alert('謝謝你的填寫...')">

    </form>

</body>點擊請單擊按鈕后將引發onClick事件,即彈出謝謝你的填寫...”的對話框。

2、改變事件onChange

       當一個texttextarea域失去焦點并更改值時觸發onChange事件,當select下拉選項中的一個選項狀態改變后也會引發該事件。

       事件適用對象fileUploadselecttexttextarea

       下面的例子在文本框的內容改變后,將彈出一個顯示內容即將改變!的對話框:

       <form>

       <input type="text" name="Test" value="Test"                 onChange="alert('內容即將改變!')">

    </form>

 

       頁面運行后在文本框中輸入內容,即內容發生改變,然后將鼠標拖走,就會引發.

3onChange事件

選中事件onSelect

       texttextarea對象中的文字被選中后(文字高亮顯示),引發該事件。

       下面的例子中,當文本框的內容被選中后,將彈出一個顯示內容已被選中!”的對話框:

       <form>

       <input type="text" name="Test" value="Test"             onSelect="alert('內容已被選中!')">

    </form>

4、獲得焦點事件onFocus

當用戶單擊texttextarea以及select對象時,產生該事件。此時該對象成為前臺對象。

 

       該事件適用對象:buttoncheckboxfileUploadlayerpasswordradioresetselectsubmittexttextareawindow

 

       下面的例子中,當鼠標移到文本域的地方即獲得焦點時,立刻彈出一個提示已經獲得焦點!”的對話框:

       <input type="textarea" value="" name="valueField" onFocus="alert('已經獲得焦點!')">

5、失去焦點onBlur

text對象或textarea對象以及select對象不再擁有焦點、而退到后臺時,引發該事件,onBlur事件與onFocus事件是一個對應的關系。

       該事件適用對象:buttoncheckboxfileUploadlayerpasswordradioresetselectsubmittexttextareawindow

 

       下面的例子中,瀏覽器的起始背景色為“lightgrey”,當鼠標移到文本域的地方即獲得焦點時,瀏覽器的背景色變為“red”,當鼠標焦點移動到瀏覽器的其他地方時,瀏覽器的背景色變為“white”

<body bgColor="lightgrey">

    <form>

       <input type="text"                        onFocus="document.bgColor='red'"           onBlur="document.bgColor='white'" >

    </form>

</body>

6、載入文件onLoad

當文件載入時,產生該事件。onLoad的作用就是在首次載入一個文檔時檢測cookie的值,并用一個變量為其賦值,使它可以被源代碼使用。

       下面的代碼在文檔打開時,將彈出提示建議瀏覽器的分辨率:800x600”的對話框。

<script>

    function show()

    {

       var str="建議瀏覽器的分辨率:800x600";

       alert(str);

    }

</script>

<body onload="show();">

7、鼠標指示事件onMouseOver

當鼠標指到相應的位置時引發的事件。

事件適用對象:layerlink

       下面的例子中,用href“Click me”加上一個超鏈接,當鼠標指到超鏈接“Click me”時,將在狀態欄提示“Click this if you dare!”

<a href="http://www.myhome.com/"

    onMouseOver="window.status='Click this if you dare!'; return true">

Click me

</a>

當鼠標指到文字“Click me”上時,將在狀態欄顯示提示文字“Click this if you dare!”

8、提交事件onSubmit

它是在點擊提交按鈕時引發的事件。

事件適用的對象:form

語法:onSubmit="handlerText"

       下面的例子中,在點擊提交按鈕時,就會彈出一個你確認提交嗎?”的提示對話框。

<form onSubmit="alert('你確認提交嗎?')">

       <input type="text" name="txt" value="測試文本">

       <input type="submit" value="提交">

    </form>

補充:定時器

定時器是用以指定在一段特定的時間后執行某段程序。常用的定時器函數有以下幾個:

setTimeout():定時器

clearTimeout():終止定時器

setInterval():設置定時器

clearInterval():取消使用setInterval()設置的定時器