版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Web程序設(shè)計(jì)(第4版)“十二五”普通高等教育本科國(guó)家級(jí)規(guī)劃教材目錄第1章
Web編程基礎(chǔ)知識(shí)
第2章Web應(yīng)用程序開(kāi)發(fā)與運(yùn)行環(huán)境第3章HTML與XML第4章層疊樣式表CSS第5章Web客戶端程序設(shè)計(jì)第6章Web服務(wù)器端程序設(shè)計(jì)第7章Web數(shù)據(jù)庫(kù)程序設(shè)計(jì)第8章ASP.NET綜合應(yīng)用實(shí)例
第5章Web客戶端程序設(shè)計(jì)
5.1腳本語(yǔ)言JavaScript5.2瀏覽器對(duì)象模型及應(yīng)用5.3HTMLDOMWeb客戶端程序設(shè)計(jì)概述
網(wǎng)頁(yè)設(shè)計(jì)要使用多種技術(shù),包括HTML語(yǔ)言、腳本程序設(shè)計(jì)、CSS樣式表以及美工技術(shù)等。
動(dòng)態(tài)網(wǎng)頁(yè),指的是按照訪問(wèn)者的需要,對(duì)訪問(wèn)者輸入的信息作出不同的響應(yīng),提供響應(yīng)信息。更進(jìn)一步,動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)技術(shù)又可分為客戶端和服務(wù)器端,客戶端動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)技術(shù)主要使用層疊樣式表(CSS)和在瀏覽器中執(zhí)行的腳本程序,而服務(wù)器端動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)技術(shù)主要使用ASP.NET、JSP、PHP等。
Web客戶端程序設(shè)計(jì)概述
隨著Web頁(yè)面的內(nèi)容和表現(xiàn)手法越來(lái)越豐富,將其結(jié)構(gòu)、表現(xiàn)和行為分離成為趨勢(shì)。構(gòu)建精良的Web頁(yè)面一般有三個(gè)層次,分別是:結(jié)構(gòu)(Structure)層表現(xiàn)(Presentation)層行為(Behavior)層對(duì)應(yīng)的標(biāo)準(zhǔn)也分三方面:結(jié)構(gòu)化標(biāo)準(zhǔn)語(yǔ)言(主要包括(X)HTML和XML)、表現(xiàn)標(biāo)準(zhǔn)語(yǔ)言(主要指CSS)和行為標(biāo)準(zhǔn)(主要包括對(duì)象模型和腳本語(yǔ)言)。Web客戶端程序設(shè)計(jì)的主要內(nèi)容是腳本語(yǔ)言和瀏覽器對(duì)象模型。5.1腳本語(yǔ)言JavaScript
腳本(Script)語(yǔ)言的概念源于UNIX操作系統(tǒng),在UNIX操作系統(tǒng)中,將主要以行命令組成的命令集稱為Shell腳本程序。Shell腳本程序具有一定的控制結(jié)構(gòu),可以帶參數(shù),由系統(tǒng)解釋執(zhí)行。除了UNIXShellScript外,在UNIX環(huán)境下,具有強(qiáng)大的字符串處理能力的Perl語(yǔ)言也是腳本語(yǔ)言的典型代表。傳統(tǒng)腳本語(yǔ)言常用來(lái)編寫(xiě)執(zhí)行一次性任務(wù),通常以文本(如ASCII)保存,只在被調(diào)用時(shí)進(jìn)行解釋或編譯。而現(xiàn)在腳本和傳統(tǒng)編程語(yǔ)言之間的界限越來(lái)越模糊。在一些腳本語(yǔ)言中,有經(jīng)驗(yàn)的程序員可以進(jìn)行大量?jī)?yōu)化工作。
本章所討論的腳本語(yǔ)言是指用于Web頁(yè)面及程序設(shè)計(jì)的腳本語(yǔ)言,它們通常是嵌入式(嵌入到HTML文件中)的、具有解釋執(zhí)行的特征。5.1.1什么是腳本語(yǔ)言
JavaScript是一種嵌入在HTML文件中的腳本語(yǔ)言,它是基于對(duì)象和事件驅(qū)動(dòng)的,能對(duì)諸如鼠標(biāo)單擊、表單輸入、頁(yè)面瀏覽等用戶事件做出反應(yīng)并進(jìn)行處理。
JavaScript特點(diǎn):(1)簡(jiǎn)單性(2)基于對(duì)象(3)可移植性(4)動(dòng)態(tài)性5.1.2JavaScript語(yǔ)言概述
5.1腳本語(yǔ)言JavaScript1.JavaScript程序的編輯和調(diào)試5.1.3JavaScript編程基礎(chǔ)
可以用任何文本編輯器來(lái)編輯JavaScript程序例如:NotePad。需要將JavaScript程序嵌入HTML文件。程序的調(diào)試在瀏覽器中進(jìn)行。5.1腳本語(yǔ)言JavaScript1.JavaScript程序的編輯和調(diào)試5.1.3JavaScript編程基礎(chǔ)
將JavaScript程序嵌入HTML文件的方法有兩種:①在HTML文件中使用<script>、</script>標(biāo)識(shí)加入JavaScript語(yǔ)句,這樣HTML語(yǔ)句和JavaScript語(yǔ)句位于同一個(gè)文件中。其格式為:<scriptlanguage="JavaScript">其中,language屬性指明腳本語(yǔ)言的類型。通常有兩種腳本語(yǔ)言:JavaScript和VBScript,language的默認(rèn)值為JavaScript。<script>標(biāo)記可插入在HTML文件的任何位置。②將JavaScript程序以擴(kuò)展名“.js”單獨(dú)存放,再利用以下格式的script標(biāo)記嵌入HTML文件:<scriptsrc=JavaScript文件名>方法②將HTML代碼和JavaScript代碼分別存放,有利于程序的共享,即多個(gè)HTML文件可以共用相同的JavaScript程序。<script>標(biāo)記通常加在HTML文件的頭部。5.1腳本語(yǔ)言JavaScript1.JavaScript程序的編輯和調(diào)試5.1.3JavaScript編程基礎(chǔ)
一個(gè)簡(jiǎn)例:<html><head><title>JavaScript簡(jiǎn)例</title></head><body><scriptlanguage="JavaScript">alert("世界,你好!");</script></body></html>5.1腳本語(yǔ)言JavaScript1.JavaScript程序的編輯和調(diào)試5.1.3JavaScript編程基礎(chǔ)
編寫(xiě)JavaScript程序時(shí)還要注意以下三點(diǎn):①JavaScript的大小寫(xiě)是敏感的,這點(diǎn)與C++相似。②在JavaScript程序中,換行符是一個(gè)完整的語(yǔ)句的結(jié)束標(biāo)志;若要將幾行代碼放在一行中,則各語(yǔ)句間要以分號(hào)(;)分隔(習(xí)慣上,也可像C++一樣,在每一個(gè)語(yǔ)句之后以一個(gè)分號(hào)結(jié)束)。③JavaScript的注釋標(biāo)記是雙斜杠“//”之后的部分,或符號(hào)“/*”與符號(hào)“*/”之間的部分(與C++相同)。5.1腳本語(yǔ)言JavaScript2.?dāng)?shù)據(jù)類型
5.1.3JavaScript編程基礎(chǔ)
JavaScript有三種數(shù)據(jù)類型:數(shù)值型、邏輯型和字符型。(1)數(shù)值型。數(shù)值型數(shù)據(jù)包括整數(shù)和浮點(diǎn)數(shù)。整數(shù)可以是十進(jìn)制、八進(jìn)制和十六進(jìn)制數(shù),八進(jìn)制值以0開(kāi)頭,十六進(jìn)制值以0x開(kāi)頭。例如:100(十進(jìn)制),021(八進(jìn)制),0x5d(十六進(jìn)制)。以下是浮點(diǎn)數(shù)例子:2.57,1.3e6,2,7e-10。(2)邏輯型。邏輯型數(shù)據(jù)有true和false兩種取值,分別表示邏輯真和邏輯假。(3)字符型。字符型數(shù)據(jù)的值是以雙引號(hào)""或單引號(hào)''括起來(lái)的任意長(zhǎng)度的一連串字符。注意反斜杠“\”是轉(zhuǎn)義字符,常用的轉(zhuǎn)義序列有:\n——換行符 \t——水平制表符
\r——回車符\b——退格符5.1腳本語(yǔ)言JavaScript3.常量和變量
5.1.3JavaScript編程基礎(chǔ)
(1)常量常量是在程序中其值保持不變的量。JavaScript的常量以直接量的形式出現(xiàn),即在程序中直接引用值,如“歡迎您”、28等。常量值可以為整型、實(shí)型、邏輯型及字符串型。另外,JavaScript中有一個(gè)空值null,表示什么也沒(méi)有,如試圖引用沒(méi)有定義的變量,則返回一個(gè)null值。
5.1腳本語(yǔ)言JavaScript3.常量和變量
5.1.3JavaScript編程基礎(chǔ)
(2)變量變量是在程序中值可以改變的量。JavaScript用關(guān)鍵字var聲明變量,或使用賦值的形式聲明變量。例如:var
str;/*聲明變量str*/num1=10;/*說(shuō)明num1為整型,并將其值賦為10*/num2=3.02e10;str1="歡迎您";5.1腳本語(yǔ)言JavaScript3.常量和變量
5.1.3JavaScript編程基礎(chǔ)
(2)變量
JavaScript命名變量的規(guī)則是:①變量名必須以字母(大小寫(xiě)均可)打頭,只能由字母(大小寫(xiě)均可)、數(shù)字(0~9)和下劃線“_”組成;②變量名長(zhǎng)度不能超過(guò)1行,并且不能使用JavaScript保留字作變量名;③變量名字母區(qū)分大小寫(xiě)。5.1腳本語(yǔ)言JavaScriptJavaScript的保留字
5.1.3JavaScript編程基礎(chǔ)
abstractbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelseextendsfalsefinalfinallyfloatforfunctiongotoifimplementsimportininstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttruetryvarvoidwhilewith5.1腳本語(yǔ)言JavaScript4.運(yùn)算符和表達(dá)式
5.1.3JavaScript編程基礎(chǔ)
運(yùn)算符JavaScript的運(yùn)算符包括:賦值運(yùn)算符算術(shù)運(yùn)算符字符串運(yùn)算符邏輯運(yùn)算符關(guān)系運(yùn)算符位運(yùn)算符5.1腳本語(yǔ)言JavaScript4.運(yùn)算符和表達(dá)式
5.1.3JavaScript編程基礎(chǔ)
賦值運(yùn)算符。JavaScript提供6個(gè)賦值運(yùn)算符,它們是基本賦值運(yùn)算符“=”,復(fù)合賦值運(yùn)算符:+=、-=、*=、/=和%=,功能是將一個(gè)表達(dá)式的值賦予一個(gè)變量。
記
法含
義記
法含
義a+=ba=a+ba-=ba=a-ba*=ba=a*ba/=ba=a/ba%=ba=a%ba<<ba=a<<ba>>=ba=a>>ba>>>=ba=a>>>ba&=ba=a&ba^=ba=a^ba|=ba=a|b賦值運(yùn)算符簡(jiǎn)記形式表
5.1腳本語(yǔ)言JavaScript4.運(yùn)算符和表達(dá)式
5.1.3JavaScript編程基礎(chǔ)
算術(shù)運(yùn)算符。算術(shù)運(yùn)算符的操作數(shù)和結(jié)果都是數(shù)值型值。算術(shù)運(yùn)算符及位運(yùn)算符可與賦值運(yùn)算符結(jié)合形成簡(jiǎn)記形式賦值運(yùn)算符簡(jiǎn)記形式表
運(yùn)
算
符操
作運(yùn)
算
符操
作+加法-(雙目)減法*乘法/除法%取模++遞增--遞減-(單目)取負(fù)5.1腳本語(yǔ)言JavaScript4.運(yùn)算符和表達(dá)式
5.1.3JavaScript編程基礎(chǔ)
字符串運(yùn)算符。字符串運(yùn)算是JavaScript中使用最多的運(yùn)算。字符串運(yùn)算符只有一個(gè)“+”,即字符串連接運(yùn)算。參與字符串連接運(yùn)算的兩個(gè)操作數(shù)如果都是字符串,則直接合并;否則,操作數(shù)會(huì)先被轉(zhuǎn)變?yōu)樽址?,再進(jìn)行合并。例如:varstr1="歡迎您"+"訪問(wèn)本頁(yè)";
//變量str1的值為“歡迎您訪問(wèn)本頁(yè)”varstr2="現(xiàn)在是"+10+"月";
//變量str2的值為“現(xiàn)在是10月”5.1腳本語(yǔ)言JavaScript4.運(yùn)算符和表達(dá)式
5.1.3JavaScript編程基礎(chǔ)
邏輯運(yùn)算符。邏輯運(yùn)算符的運(yùn)算對(duì)象和結(jié)果都是邏輯值。邏輯運(yùn)算符有三個(gè):&&與運(yùn)算是雙目運(yùn)算。當(dāng)兩個(gè)操作數(shù)都為true時(shí),結(jié)果為true,其他情況下結(jié)果均為false。||或運(yùn)算是雙目運(yùn)算。當(dāng)兩個(gè)操作數(shù)中至少有一個(gè)為true時(shí),結(jié)果為true,否則結(jié)果為false。!非運(yùn)算是單目運(yùn)算。結(jié)果是操作數(shù)的值取反。5.1腳本語(yǔ)言JavaScript4.運(yùn)算符和表達(dá)式
5.1.3JavaScript編程基礎(chǔ)
關(guān)系運(yùn)算符。關(guān)系運(yùn)算符用于數(shù)值及字符串值的比較,返回比較判斷的結(jié)果。關(guān)系運(yùn)算符的運(yùn)算結(jié)果是邏輯值。關(guān)系運(yùn)算包括:==相等!=不等<小于>大于<=小于或等于>=大于或等于例如:x>=100,y==20利用關(guān)系運(yùn)算符、邏輯運(yùn)算符及括號(hào)可以組成復(fù)雜的表達(dá)式。例如:(?。╝==9)&&(x<=100))||(a!=9))
5.1腳本語(yǔ)言JavaScript4.運(yùn)算符和表達(dá)式
5.1.3JavaScript編程基礎(chǔ)
位運(yùn)算符。位運(yùn)算符將操作數(shù)作為二進(jìn)制值處理,返回JavaScript標(biāo)準(zhǔn)的數(shù)值型數(shù)據(jù)。位運(yùn)算符都是雙目運(yùn)算,包括:&按位與|按位或^按位異或<<左移>>右移>>>右移,零填充例如:15&8的結(jié)果為8(1111&1000)
15|8的結(jié)果為15(1111|1000)
15^8的結(jié)果為7(1111|1000)5.1腳本語(yǔ)言JavaScript4.運(yùn)算符和表達(dá)式
5.1.3JavaScript編程基礎(chǔ)
JavaScript運(yùn)算符的優(yōu)先級(jí)由高到低排列如下:[]() 高++--!*/%+-<<>>>>><><=>===!=&^|&&||?==+=-=*=/=%= 低5.1腳本語(yǔ)言JavaScript4.運(yùn)算符和表達(dá)式
5.1.3JavaScript編程基礎(chǔ)
表達(dá)式表達(dá)式是由常量、變量、運(yùn)算符、函數(shù)和表達(dá)式組成的式子,任何表達(dá)式都可求得單一值。根據(jù)表達(dá)式值的類型,JavaScript的表達(dá)式有三類:①算術(shù)表達(dá)式。其值是一個(gè)數(shù)值型值。例如:5+a-x。②字符串表達(dá)式。其值是一個(gè)字符串。例如:"字符串1"+str。③邏輯表達(dá)式。其值是一個(gè)邏輯值。例如:(x==y)&&(y>=5)。特殊的表達(dá)式——條件表達(dá)式,其格式為:
(condition)?val1:val2其中,condition是邏輯表達(dá)式。該條件表達(dá)式的含義是:如果condition的值為true,則條件表達(dá)式的值為val1,否則條件表達(dá)式的值為val2。5.1腳本語(yǔ)言JavaScript5.函數(shù)
5.1.3JavaScript編程基礎(chǔ)
函數(shù)為程序設(shè)計(jì)人員提供了實(shí)現(xiàn)模塊化的工具。
將程序劃分為一些相對(duì)獨(dú)立的部分,每部分編寫(xiě)一個(gè)函數(shù),從而使各部分充分獨(dú)立,任務(wù)單一,程序清晰,易懂、易讀、易維護(hù)。JavaScript函數(shù)可以封裝那些在程序中可能要多次用到的功能塊。函數(shù)定義的語(yǔ)法格式為:function函數(shù)名(參數(shù)表){
函數(shù)體return表達(dá)式或return(表達(dá)式)}
5.1腳本語(yǔ)言JavaScript5.函數(shù)
5.1.3JavaScript編程基礎(chǔ)
【例5-1】設(shè)計(jì)一個(gè)如圖所示的頁(yè)面,顯示指定數(shù)的階乘值。<html><head><title>函數(shù)簡(jiǎn)例</title><scriptlanguage="JavaScript">functionfactor(num){
var
i,fact=1;for(i=1;i<num+1;i++)fact=i*fact;returnfact;}</script></head><body><p><script>document.write("<br><br>調(diào)用factor函數(shù),5的階乘等于:",factor(5),"。");</script></p></body></html>5.1腳本語(yǔ)言JavaScript5.函數(shù)
5.1.3JavaScript編程基礎(chǔ)
使用函數(shù)時(shí)要注意以下三點(diǎn):①函數(shù)定義位置。推薦在HTML文件的頭部定義所有的函數(shù),因?yàn)檫@樣可以保證函數(shù)的定義先于其調(diào)用語(yǔ)句載入瀏覽器,從而不會(huì)出現(xiàn)調(diào)用函數(shù)時(shí)由于函數(shù)定義尚未載入瀏覽器而引起的函數(shù)未定義錯(cuò)。②函數(shù)的參數(shù)。函數(shù)的參數(shù)是在主調(diào)程序與被調(diào)用函數(shù)之間傳遞數(shù)據(jù)的主要手段。③變量的作用域。5.1腳本語(yǔ)言JavaScript5.1.3JavaScript編程基礎(chǔ)
在函數(shù)的定義時(shí),可以給出一個(gè)或多個(gè)形式參數(shù),而在調(diào)用函數(shù)時(shí),卻不一定要給出同樣多的實(shí)參。JavaScript中,系統(tǒng)變量arguments.length中保存了調(diào)用者給出的實(shí)在參數(shù)的個(gè)數(shù)。
【例5-2】設(shè)計(jì)一個(gè)函數(shù)求累加和,默認(rèn)時(shí)求1+2+…+1000,否則按照用戶所指定的開(kāi)始值和終止值求和。functionsum(StartVal,EndVal){var
ArgNum=sum.arguments.length;
var
i,s=0;if(ArgNum==0){StartVal=1;EndVal=1000;}elseif(ArgNum==1)
EndVal=1000;for(i=StartVal;i<=EndVal;i++)s+=i;returns;}5.1腳本語(yǔ)言JavaScript5.1.3JavaScript編程基礎(chǔ)
變量的作用域。在函數(shù)內(nèi)用var保留字聲明的變量是局部變量,其作用域僅局限于該函數(shù);而在函數(shù)外用var保留字聲明的變量是全局變量,其作用域是整個(gè)HTML文件。在函數(shù)內(nèi)未用var聲明的變量也是全局變量當(dāng)函數(shù)內(nèi)以var聲明的變量與全局變量同名時(shí),它們就像不同名的兩個(gè)變量,其操作互不影響。
【例5-3】變量作用域示例。
<scriptlanguage="JavaScript">vari,j=10;//全局變量functionoutput(){
varj=0;//局部變量
i=100;//全局變量
j++;j++;document.write("j=",j);document.write("i=",i);
i++;}
5.1腳本語(yǔ)言JavaScript5.1.3JavaScript編程基礎(chǔ)
6.流程控制
JavaScript有順序、分支和循環(huán)三種控制結(jié)構(gòu)。順序結(jié)構(gòu)是最一般的控制結(jié)構(gòu),若沒(méi)有改變執(zhí)行順序的語(yǔ)句,則程序的各語(yǔ)句是按其出現(xiàn)的先后順序依次執(zhí)行的。可以改變程序執(zhí)行順序的是條件轉(zhuǎn)移語(yǔ)句和循環(huán)語(yǔ)句。
5.1腳本語(yǔ)言JavaScript5.1.3JavaScript編程基礎(chǔ)
6.流程控制
條件轉(zhuǎn)移語(yǔ)句:if(condition)statments1[elsestatments2]其中,condition表示條件,可以是邏輯或關(guān)系表達(dá)式,若是數(shù)值型數(shù)據(jù),則將零和非零的數(shù)分別轉(zhuǎn)換成false和true。如果condition為true,則執(zhí)行語(yǔ)句體statments1;若省略else子句,則condition為false時(shí)什么也不做,否則執(zhí)行語(yǔ)句體statments2。若if及else后的語(yǔ)句體有多行,則必須使用花括號(hào)將其括起來(lái)。
if語(yǔ)句可以嵌套,格式為:if(condition1)statments1elseif(condition2)statments2elseif(condition3)statments3
elsestatmentsN;5.1腳本語(yǔ)言JavaScript5.1.3JavaScript編程基礎(chǔ)
6.流程控制
while循環(huán)語(yǔ)句:while(condition){statments}當(dāng)condition為true時(shí),反復(fù)執(zhí)行循環(huán)體statements;否則,跳出循環(huán)體。要注意在循環(huán)體中必須含有改變循環(huán)條件的操作,使之離循環(huán)終止更近一步,否則會(huì)陷入死循環(huán)。
5.1腳本語(yǔ)言JavaScript5.1.3JavaScript編程基礎(chǔ)
6.流程控制
for循環(huán)語(yǔ)句:for(exp1;exp2;exp3){statments}其中,exp1是循環(huán)前的初始設(shè)置,通常設(shè)置循環(huán)計(jì)數(shù)器的初值;exp2是循環(huán)條件,當(dāng)exp2為true時(shí)才執(zhí)行循環(huán)體statments;exp3是運(yùn)算,它改變循環(huán)設(shè)置,通常會(huì)改變循環(huán)計(jì)數(shù)器的值,使之離循環(huán)終止更近一步。
5.1腳本語(yǔ)言JavaScript5.1.3JavaScript編程基礎(chǔ)
6.流程控制
【例5-4】使用for循環(huán)語(yǔ)句計(jì)算10!。<html><body><script>
var
i,factor;factor=1;for(i=1;i<=10;i++)factor*=i;document.write("10的階乘是:",factor);</script></body></html>
5.1腳本語(yǔ)言JavaScript5.1.3JavaScript編程基礎(chǔ)
6.流程控制
continue和break語(yǔ)句continue語(yǔ)句強(qiáng)制本輪循環(huán)結(jié)束,進(jìn)入下一輪循環(huán);例如:while(i<100){if(j==0)continue;else{語(yǔ)句體}j++;}break語(yǔ)句強(qiáng)制結(jié)束循環(huán)。例如:while(i<100){if(j==0)break;else{語(yǔ)句體}j++;}5.1腳本語(yǔ)言JavaScript5.1.3JavaScript編程基礎(chǔ)
7.事件觸發(fā)和處理
JavaScript是基于對(duì)象(Object-based)的語(yǔ)言,而基于對(duì)象的基本特征,就是采用事件驅(qū)動(dòng)(Event-driven)。事件(Events)是指對(duì)計(jì)算機(jī)進(jìn)行一定的操作而得到的結(jié)果,例如將鼠標(biāo)移到某個(gè)超鏈接上、按下鼠標(biāo)按鈕等都是事件。由鼠標(biāo)或熱鍵引發(fā)的一連串程序的動(dòng)作,稱為事件驅(qū)動(dòng)(EventDriver)。對(duì)事件進(jìn)行處理的程序或函數(shù),稱為事件處理程序(EventHandler)。
5.1腳本語(yǔ)言JavaScript5.1.3JavaScript編程基礎(chǔ)
JavaScript常用事件表
事
件
名發(fā)生的對(duì)象說(shuō)
明事件處理名Click表單的button,radio,checkbox,submit,reset,link(超鏈接)單擊了表單元素或超鏈接onClickLoadHTML的body元素在瀏覽器中載入頁(yè)面onLoadUnloadHTML的body元素退出當(dāng)前頁(yè)面onUnloadMouseOverlink鼠標(biāo)移到超鏈接上onMouseOverMouseOutlink鼠標(biāo)移出超鏈接onMouseOutSubmitform用戶提交了表單onSubmit5.1腳本語(yǔ)言JavaScript5.1.3JavaScript編程基礎(chǔ)
【例5-5】MouseOver和MouseOut事件處理用法示例。
<html><head><title>事件觸發(fā)和事件處理</title><scriptlanguage="JavaScript">varImages=newArray();Images[0]=newImage();Images[0].src="dot1.jpg";Images[1]=newImage();Images[1].src="check.gif";functionchangeImg(ImgIndex){document.imgs.src=Images[ImgIndex].src;}</script></head><body><center><ahref="learn.html"onMouseOver="changeImg(1);returntrue"onMouseOut="changeImg(0);returntrue"><img
src="dot1.jpg"name="imgs"border=0width=30height=30><fontsize=5>軟件設(shè)計(jì)</font></a></center></body></html>
5.1腳本語(yǔ)言JavaScript5.1.3JavaScript編程基礎(chǔ)
【例5-6】簡(jiǎn)易計(jì)算器設(shè)計(jì)。
首先,需要設(shè)置數(shù)字按鍵和功能按鍵:可使用表單按鈕(button)來(lái)表示。例如,使用如下語(yǔ)句:<inputtype=buttonvalue="1"onClick="SetVal('1')">顯示數(shù)字“1”的按鍵,當(dāng)按下該按鍵時(shí),將執(zhí)行SetVal('1')操作。<inputtype=buttonvalue="+"onClick="SetOpr('+')">顯示運(yùn)算符“+”的按鍵,當(dāng)按下該按鍵時(shí),將執(zhí)行SetOpr('+')操作。又如以下語(yǔ)句:<inputtype=buttonvalue="="onClick="Compute(this.form)">顯示功能按鍵“=”,當(dāng)按下該鍵時(shí),將計(jì)算用戶輸入的表達(dá)式的值。5.1腳本語(yǔ)言JavaScript5.1.3JavaScript編程基礎(chǔ)
【例5-6】簡(jiǎn)易計(jì)算器設(shè)計(jì)。
其次,需要一個(gè)顯示輸入計(jì)算式和結(jié)果的地方,可使用HTML表單的text(單行文本框)元素來(lái)表示,例如:<inputtype=textvalue=""name=OutText>最后,要考慮這些設(shè)置和計(jì)算任務(wù)如何來(lái)完成。①SetVal操作:將用戶按下的鍵所代表的數(shù)字連接到整個(gè)輸入串的尾部,并判斷這是第幾個(gè)操作數(shù),將其存入相應(yīng)的變量中;②SetOpr操作:將用戶按下的鍵所代表的運(yùn)算連接到整個(gè)輸入串的尾部;③Compute操作:利用系統(tǒng)預(yù)定義函數(shù)eval()求出表達(dá)式的值;④Clear操作:清除輸入框的內(nèi)容。
5.1腳本語(yǔ)言JavaScript5.1.4JavaScript對(duì)象
在JavaScript中,對(duì)象是對(duì)客觀事物或事物之間的關(guān)系的刻畫(huà)。
兩類JavaScript的對(duì)象:內(nèi)建對(duì)象內(nèi)建對(duì)象包含了對(duì)瀏覽器各成分的描述,是JavaScript程序設(shè)計(jì)中應(yīng)用最多的部分;用戶自定義對(duì)象用戶自定義對(duì)象允許用戶根據(jù)需要?jiǎng)?chuàng)建自己的對(duì)象,從而進(jìn)一步擴(kuò)大JavaScript的應(yīng)用范圍,增強(qiáng)編寫(xiě)功能強(qiáng)大的Web文檔。
5.1腳本語(yǔ)言JavaScript5.1.4JavaScript對(duì)象
JavaScript中的對(duì)象是由屬性(Properties)和方法(Methods)兩個(gè)基本元素構(gòu)成的:屬性成員是對(duì)象的數(shù)據(jù);方法成員是對(duì)數(shù)據(jù)的操作。要使用一個(gè)對(duì)象,可采用以下三種方式:①引用JavaScript內(nèi)建對(duì)象。②由瀏覽器環(huán)境提供,即引用瀏覽器對(duì)象。③創(chuàng)建自定義對(duì)象。注意:一個(gè)對(duì)象在被引用之前,這個(gè)對(duì)象必須存在,否則將出現(xiàn)錯(cuò)誤。實(shí)際上,引用對(duì)象要么創(chuàng)建新的對(duì)象,要么利用現(xiàn)存的對(duì)象。1.JavaScript對(duì)象概述
5.1腳本語(yǔ)言JavaScript5.1.4JavaScript對(duì)象
用戶定義自己的對(duì)象包括兩部分:
構(gòu)造對(duì)象的屬性定義對(duì)象的方法
定義對(duì)象的步驟是:首先定義對(duì)象的各個(gè)方法成員,每個(gè)方法成員就是一個(gè)普通函數(shù)。然后定義對(duì)象的構(gòu)造函數(shù),其中包含每個(gè)屬性成員的定義和初始化,以及每個(gè)方法成員的初始化。2.自定義對(duì)象
5.1腳本語(yǔ)言JavaScript5.1.4JavaScript對(duì)象
【例5-7】“書(shū)”對(duì)象的定義。
functionprint(){//方法成員定義,輸出各屬性成員值document.write("書(shū)名為"++"<br>");document.write("作者為"+this.author+"<br>");document.write("出版社為"+this.publisher+"<br>");document.write("出版時(shí)間為"+this.date+"<br>");document.write("印數(shù)為"+this.num+"<br>");}functionbook(name,author,publisher,date,num){//構(gòu)造函數(shù)=name;//書(shū)名,屬性成員this.author=author;//作者,屬性成員this.publisher=publisher; //出版社,屬性成員this.date=date; //出版時(shí)間,屬性成員this.num=num; //印數(shù),屬性成員this.print=print; //方法成員}5.1腳本語(yǔ)言JavaScript5.1.4JavaScript對(duì)象
構(gòu)造函數(shù)特殊性:①構(gòu)造函數(shù)的名字就是對(duì)象的名字;如例4-7所定義的對(duì)象的名字就是構(gòu)造函數(shù)book的名字——book。②在構(gòu)造函數(shù)中常使用關(guān)鍵字this來(lái)為對(duì)象的屬性成員和方法成員初始化,this本身是一個(gè)特殊對(duì)象,即當(dāng)前構(gòu)造函數(shù)正在創(chuàng)建的對(duì)象。③每個(gè)對(duì)象都必須定義構(gòu)造函數(shù)。
2.自定義對(duì)象
5.1腳本語(yǔ)言JavaScript5.1.4JavaScript對(duì)象
引用對(duì)象的二件工作:先用保留字new創(chuàng)建對(duì)象的實(shí)例。創(chuàng)建了對(duì)象實(shí)例后,就可通過(guò)該實(shí)例引用對(duì)象的屬性和方法成員。創(chuàng)建對(duì)象實(shí)例的方法是:var對(duì)象實(shí)例名=new對(duì)象名(實(shí)在參數(shù)表);創(chuàng)建對(duì)象實(shí)例時(shí),要注意實(shí)在參數(shù)表與對(duì)象構(gòu)造函數(shù)的形式參數(shù)表的對(duì)應(yīng)關(guān)系。例如:對(duì)例4-7定義的book對(duì)象創(chuàng)建實(shí)例。varbook1=newbook("語(yǔ)文","集體編","人民教育出版社","1999",10000);對(duì)象屬性成員的引用格式是:對(duì)象實(shí)例名.屬性成員名對(duì)象方法成員的引用格式是:對(duì)象實(shí)例名.方法成員名3.對(duì)象的引用
5.1腳本語(yǔ)言JavaScript5.1.4JavaScript對(duì)象
兩條語(yǔ)句:(1)for..in語(yǔ)句。這是一條循環(huán)語(yǔ)句,格式如下:for(變量名in對(duì)象實(shí)例名)該語(yǔ)句用于對(duì)已有對(duì)象實(shí)例的所有屬性進(jìn)行操作的控制循環(huán),它將一個(gè)對(duì)象實(shí)例的所有屬性反復(fù)置給指定的變量來(lái)實(shí)現(xiàn)循環(huán)。該語(yǔ)句的優(yōu)點(diǎn)就是無(wú)須知道對(duì)象中屬性的個(gè)數(shù)即可進(jìn)行操作。(2)with語(yǔ)句。其語(yǔ)法格式是:
withobject{//在其中引用object的成員時(shí),可不加前綴}在該語(yǔ)句體內(nèi),任何對(duì)變量的引用被認(rèn)為是這個(gè)對(duì)象的屬性,以節(jié)省一些代碼。
4.有關(guān)對(duì)象操作的語(yǔ)句5.1腳本語(yǔ)言JavaScript5.1.4JavaScript對(duì)象
functionShow(obj)//定義通用函數(shù)Show{varprop;for(propinobj)
document.write(obj[prop]+"");
document.write("<br>");}【例5-8】下列函數(shù)Show顯示其參數(shù)對(duì)象各屬性的值。
5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
JavaScript的常用內(nèi)建對(duì)象和方法如下:①Array(數(shù)組)對(duì)象。JavaScript的數(shù)組可通過(guò)該內(nèi)建對(duì)象來(lái)實(shí)現(xiàn)。②String(字符串)對(duì)象。封裝了字符串及有關(guān)操作。③Math(數(shù)學(xué))對(duì)象。封裝了一些常用的數(shù)學(xué)運(yùn)算。④Date(日期時(shí)間)對(duì)象。封裝了對(duì)日期和時(shí)間的操作。⑤Number對(duì)象、Boolean對(duì)象、Function對(duì)象。5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
數(shù)組是若干元素的有序集合,每個(gè)數(shù)組有一個(gè)名字作為其標(biāo)識(shí)。在幾乎所有的高級(jí)語(yǔ)言中,數(shù)組都是得到支持的數(shù)據(jù)類型,但在JavaScript中,沒(méi)有明顯的數(shù)組類型。在JavaScript中數(shù)組可通過(guò)對(duì)象來(lái)實(shí)現(xiàn),具體有兩種實(shí)現(xiàn)方式:①
使用JavaScript的內(nèi)建對(duì)象Array;②
使用自定義對(duì)象的方式創(chuàng)建數(shù)組對(duì)象。
1.?dāng)?shù)組5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
創(chuàng)建數(shù)組對(duì)象實(shí)例通過(guò)new保留字來(lái)進(jìn)行,其語(yǔ)法格式如下:var
數(shù)組名=newArray([數(shù)組長(zhǎng)度值]);其中,數(shù)組名是一個(gè)標(biāo)識(shí)符。數(shù)組長(zhǎng)度值是一個(gè)正整數(shù)。例如:vararr1=newArray(); //創(chuàng)建數(shù)組實(shí)例arr1,長(zhǎng)度不定
vararr2=newArray(10);//創(chuàng)建數(shù)組實(shí)例arr2,長(zhǎng)度為10若創(chuàng)建數(shù)組時(shí)不給出元素個(gè)數(shù),則數(shù)組的大小由后面引用數(shù)組時(shí)確定。數(shù)組的下標(biāo)從0開(kāi)始,因此有10個(gè)元素的數(shù)組,其下標(biāo)范圍是0~9。
數(shù)組元素的引用引用數(shù)組元素的語(yǔ)法格式為:數(shù)組名[下標(biāo)值]
內(nèi)建對(duì)象Array5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
內(nèi)建對(duì)象Array的特點(diǎn):
數(shù)組元素不要求數(shù)據(jù)類型相同。例如:
arr1[0]=10; //數(shù)值型arr1[1]="王林"; //字符串a(chǎn)rr1[2]=false; //邏輯型數(shù)組長(zhǎng)度可以動(dòng)態(tài)變化例如,前面定義了有10個(gè)元素的數(shù)組arr2,若希望增加到18個(gè)元素,則只要用以下賦值語(yǔ)句即可:
arr2[17]=1; //可以為arr2[17]賦任意值
內(nèi)建對(duì)象Array5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
Array對(duì)象的屬性和方法
:
Array對(duì)象常用的屬性是length屬性,表示數(shù)組長(zhǎng)度,其值等于數(shù)組元素個(gè)數(shù)。其常用方法有:join該方法返回由數(shù)組中所有元素連接而成的字符串。reverse該方法逆轉(zhuǎn)數(shù)組中各元素,即將第一個(gè)元素?fù)Q為最后一個(gè),將最后一個(gè)元素?fù)Q為第一個(gè)。sort對(duì)數(shù)組中的元素進(jìn)行排序。內(nèi)建對(duì)象Array5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
5.1腳本語(yǔ)言JavaScript【例5-9】一個(gè)Array對(duì)象的應(yīng)用示例。
按照用戶單擊的按鈕(A書(shū)、B書(shū)、C書(shū)或D書(shū)),分別在“當(dāng)前書(shū)”、“書(shū)名”、“出版社”和“印數(shù)”框中顯示相應(yīng)的書(shū)代號(hào)、書(shū)名、出版社名和印數(shù),其運(yùn)行結(jié)果如圖所示。5.1.5常用的內(nèi)建對(duì)象和函數(shù)
5.1腳本語(yǔ)言JavaScript【例5-9】一個(gè)Array對(duì)象的應(yīng)用示例。
<html><head><title>數(shù)組對(duì)象</title><scriptlanguage="JavaScript">functionupdateInfo(WhichBook)//對(duì)象book的方法成員,修改對(duì)象屬性值{document.BookForm.currbook.value=WhichBook;
document.BookForm.BookTitle.value=this.Title;
document.BookForm.BookPublisher.value=this.Publisher;
document.BookForm.BookAmount.value=this.Amount;}functionBook(title,publisher,amount)//對(duì)象book的構(gòu)造函數(shù){this.Title=title;
this.Publisher=publisher;
this.Amount=amount;
this.UpdateInfo=updateInfo;}</script></head>5.1.5常用的內(nèi)建對(duì)象和函數(shù)
5.1腳本語(yǔ)言JavaScript【例5-9】一個(gè)Array對(duì)象的應(yīng)用示例。
<body><scriptlanguage="JavaScript">varBooks=newArray();//創(chuàng)建數(shù)組,數(shù)組元素是book對(duì)象//為數(shù)組各元素賦值Books[0]=newBook("語(yǔ)文","少年兒童出版社",10000);Books[1]=newBook("數(shù)學(xué)","高等教育出版社",5000);Books[2]=newBook("普通物理","高等教育出版社",3000);Books[3]=newBook("計(jì)算機(jī)基礎(chǔ)","清華大學(xué)出版社",2000);</script><h2align=center>共有四本書(shū),可選擇查看其信息</h2>5.1.5常用的內(nèi)建對(duì)象和函數(shù)
5.1腳本語(yǔ)言JavaScript【例5-9】一個(gè)Array對(duì)象的應(yīng)用示例。
<formname="BookForm">選擇當(dāng)前所顯示的書(shū): <inputtype=buttonvalue=A書(shū)onClick="Books[0].UpdateInfo('A書(shū)')"><inputtype=buttonvalue=B書(shū)onClick="Books[1].UpdateInfo('B書(shū)')"><inputtype=buttonvalue=C書(shū)onClick="Books[2].UpdateInfo('C書(shū)')"><inputtype=buttonvalue=D書(shū)onClick="Books[3].UpdateInfo('D書(shū)')"><br><br>當(dāng)前書(shū):<inputtype="text"name="currbook"value="A書(shū)"><br><br>書(shū)名:<inputtype="text"name="BookTitle"value="語(yǔ)文"><br><br>出版社:<inputtype="text"name="BookPublisher"value="少年兒童出版社"><br><br>印數(shù):<inputtype="text"name="BookAmount"value="10000"></form></body></html>5.1.5常用的內(nèi)建對(duì)象和函數(shù)
定義數(shù)組對(duì)象
functionarrayName(Size){//Size是數(shù)組的長(zhǎng)度
this.length=Size;
for(vari=0;i<Size;i++)
this[i]=0;returnthis;}
自定義數(shù)組對(duì)象:自定義數(shù)組對(duì)象與一般的自定義對(duì)象的使用方法一樣:通過(guò)function定義一個(gè)數(shù)組的構(gòu)造函數(shù),并使用new對(duì)象操作符創(chuàng)建一個(gè)具有指定長(zhǎng)度的數(shù)組。
5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
創(chuàng)建數(shù)組實(shí)例一個(gè)數(shù)組對(duì)象定義完成以后,還不能馬上使用,必須使用new操作符為該數(shù)組創(chuàng)建一個(gè)數(shù)組實(shí)例。例如:MyArray=newarrayName(10);并為各元素賦初值:MyArray[0]=1;MyArray[1]=2;
MyArray[9]=10;
自定義數(shù)組對(duì)象5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
創(chuàng)建String對(duì)象實(shí)例
創(chuàng)建String對(duì)象實(shí)例的語(yǔ)法是:[var]String對(duì)象實(shí)例名=newString(string);或varString對(duì)象實(shí)例名=字符串值;例如:str1=newString("Thisisasample.");str2="Thisisasample.";
2.String對(duì)象5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
創(chuàng)建String對(duì)象實(shí)例
創(chuàng)建String對(duì)象實(shí)例的語(yǔ)法是:[var]String對(duì)象實(shí)例名=newString(string);或varString對(duì)象實(shí)例名=字符串值;例如:str1=newString("Thisisasample.");str2=“Thisisasample.”;
String對(duì)象的屬性String對(duì)象的屬性只有一個(gè):length(長(zhǎng)度),其值是字符串包含的字符個(gè)數(shù)。2.String對(duì)象5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
String對(duì)象的方法
①charAt(position)。返回String對(duì)象實(shí)例中位于position位置上的字符,其中position為正整數(shù)或0。注意字符串中字符位置從0開(kāi)始計(jì)算。②indexOf(str)、indexOf(str,start-position)。字符串查找,str是待查找的字符串。在String對(duì)象實(shí)例中查找str,若給出start-position,則從start-position位置開(kāi)始查找,否則從0開(kāi)始查找;若找到,返回str在String對(duì)象實(shí)例中的起始位置,否則返回-1。③lastIndexOf(str)。該方法與indexOf()類似,區(qū)別在于它是從右往左查找。④substring(position)、substring(position1,position2)。返回String對(duì)象的子串。如果只給出position,返回從position開(kāi)始至字符串結(jié)束的子串;如果給出position1和position2,則返回從二者中較小值處開(kāi)始至較大值處結(jié)束的子串。2.String對(duì)象5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
String對(duì)象的方法
⑤toLowerCase()、toUpperCase()。分別將String對(duì)象實(shí)例中的所有字符改變?yōu)樾?xiě)或大寫(xiě)。⑥有關(guān)字符顯示的控制方法。big用大字體顯示,Italics()為斜體字顯示,bold()為粗體字顯示,blink()為字符閃爍顯示,small()為字符用小體字顯示,fixed()為固定高亮字顯示,fontsize(size)為控制字體大小等。⑦錨點(diǎn)方法anchor()和超鏈接方法link()。錨點(diǎn)方法anchor返回一個(gè)字符串,該字符串是網(wǎng)頁(yè)中的一個(gè)錨點(diǎn)名。⑧fontcolor(color)、fontsize()。字號(hào)方法fontsize()的使用與fontcolor()基本相同。字體顏色方法fontcolor(color)返回一個(gè)字符串,此字符串可改變網(wǎng)頁(yè)中的文字顏色。語(yǔ)法格式為:str.fontcolor(FontColor)其中,F(xiàn)ontColor是顏色值,可以是一個(gè)英文單詞,或一個(gè)十六進(jìn)制數(shù)值
2.String對(duì)象5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
Math對(duì)象封裝了常用的數(shù)學(xué)常數(shù)和運(yùn)算,包括三角函數(shù)、對(duì)數(shù)函數(shù)、指數(shù)函數(shù)等。Math對(duì)象與其他對(duì)象不同,它本身就是一個(gè)實(shí)例,是由系統(tǒng)創(chuàng)建的,稱為“靜態(tài)對(duì)象”,不能用new創(chuàng)建Math對(duì)象實(shí)例。3.Math對(duì)象
5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
Math對(duì)象的屬性Math對(duì)象的屬性定義了一些常用的數(shù)學(xué)常數(shù),它們是只讀的。
3.Math對(duì)象
屬
性
名含
義E常數(shù)e,自然對(duì)數(shù)的底,近似值為2.718LN22的自然對(duì)數(shù),近似值為0.693LN1010的自然對(duì)數(shù),近似值為2.302LOG2E以2為底,e的對(duì)數(shù),即log2e,近似值為1.442LOG10E以10為底,e的對(duì)數(shù),即log10e,近似值為0.434PI圓周率,近似值為3.142SQRT1_20.5的平方根,近似值為0.707SQRT22的平方根,近似值為1.4145.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
Math對(duì)象的方法3.Math對(duì)象
方
法含
義sin(val)返回val的正弦值,val的單位是rad(弧度)cos(val)返回val的余弦值,val的單位是rad(弧度)tan(val)返回val的正切值,val的單位是rad(弧度)asin(val)返回val的反正弦值,val的單位是弧度exp(val)返回e的val次方log(val)返回val的自然對(duì)數(shù)pow(bv,ev)返回bv的ev次方sqrt(val)返回val的平方根abs(val)返回val的絕對(duì)值ceil(val)返回大于或等于val的最小整數(shù)值floor(val)返回小于或等于val的最小整數(shù)值round(val)返回val四舍五入得到的整數(shù)值random()返回0~1之間的隨機(jī)數(shù)max(val1,val2)返回val1和val2之間的大者min(val1,val2)返回val1和val2之間的小者5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
Date對(duì)象封裝了有關(guān)日期和時(shí)間的操作,它有大量設(shè)置、獲得和處理日期和時(shí)間的方法,但沒(méi)有任何屬性。
4.Date對(duì)象
5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
創(chuàng)建Date對(duì)象實(shí)例
[var]Date對(duì)象名=newDate([parameters]);參數(shù)可以是以下的任一種形式:無(wú)參數(shù)//獲得當(dāng)前日期和時(shí)間形如“月日,年時(shí):分:秒”的參數(shù)//創(chuàng)建指定日期和時(shí)間的實(shí)例
形如“年、月、日、時(shí)、分、秒”的整數(shù)值參數(shù)
//創(chuàng)建指定日期和時(shí)間的實(shí)例(省略時(shí)、分、秒,其值將設(shè)為0)例如:vartoday=newDate();birthday=newDate("September10,19905:50:20");birthday=newDate(90,9,20);birthday=newDate(90,9,20,5,50,20);4.Date對(duì)象5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
Date對(duì)象的方法
①get方法組,在Date對(duì)象中獲取日期和時(shí)間值。主要包括以下9種。getYear():返回對(duì)象實(shí)例的年份值。如果年份在1900年后,則返回后兩位,例如1998將返回98;如果年份在100~1900之間,則返回完全值。getMonth():返回對(duì)象實(shí)例的月份值,其值在0~11之間。getDate():返回對(duì)象實(shí)例日期中的天,其值在1~31之間。getDay():返回對(duì)象實(shí)例日期是星期幾,其值在0~6之間,0代表星期日。getHours():返回對(duì)象實(shí)例時(shí)間的小時(shí)值,其值在0~23之間。getMinutes():返回對(duì)象實(shí)例時(shí)間的分鐘值,其值在0~59之間。getSeconds():返回對(duì)象實(shí)例時(shí)間的秒值,其值在0~59之間。getTime():返回一個(gè)整數(shù)值,該值等于從1970年1月1日00:00:00到該對(duì)象實(shí)例存儲(chǔ)的時(shí)間所經(jīng)過(guò)的毫秒數(shù)。getTimezoneOffset():返回當(dāng)?shù)貢r(shí)區(qū)與GMT標(biāo)準(zhǔn)時(shí)的差別,單位是min。(GMT時(shí)間是基于格林尼治時(shí)間的標(biāo)準(zhǔn)時(shí)間,也稱UTC時(shí)間)。
4.Date對(duì)象5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
Date對(duì)象的方法
②set方法組,設(shè)置Date對(duì)象中的日期和時(shí)間值,包括setYear(year)、setMonth(month)、setDate(date)、setHours(hours)、setMinutes(minutes)、setSeconds(senconds)和setTime(time),含義與get方法組相同。③to方法組,從Date對(duì)象中返回日期和時(shí)間的字符串值,包括toGMTString()、toLocalString()和toString()。④parse和UTC方法,用于分析Date字符串。
4.Date對(duì)象5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
【例5-10】一個(gè)有關(guān)Date對(duì)象的應(yīng)用例子。該HTML文件在瀏覽器窗口顯示一個(gè)不斷刷新的數(shù)字時(shí)鐘。4.Date對(duì)象functionaClock(){
varnow=newDate();
varhour=now.getHours();
varmin=now.getMinutes();
varsec=now.getSeconds();
var
timeStr=""+hour;
timeStr+=((min<10)?":0":":")+min;timeStr+=((sec<10)?":0":":")+sec;
timeStr+=(hour>=12)?"P.M.":"A.M.";document.clock_form.clock_text.value=timeStr;
clockId=setTimeout("aClock()",1000);}5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
Number對(duì)象給出了系統(tǒng)最大值、最小值以及非數(shù)字常量的定義
5.Number對(duì)象
屬
性含
義MAX_VALUE數(shù)值型最大值,值為1.7976931348623517e+308MIN_VALUE數(shù)值型最小值,值為5e-324NaN非合法數(shù)字值POSITIVE_INFINITY正無(wú)窮大NEGATIVE_INFINITY負(fù)無(wú)窮大Number對(duì)象屬性表
5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
Boolean對(duì)象的作用是將非布爾量轉(zhuǎn)換為布爾量。創(chuàng)建Boolean對(duì)象實(shí)例的語(yǔ)法:[var]BoolVal=newBoolean([參數(shù)]);其中,參數(shù)可以為空。當(dāng)參數(shù)為空,或參數(shù)為0、null、false、空字符串時(shí),所創(chuàng)建的對(duì)象實(shí)例為false;其他情況下,所創(chuàng)建的對(duì)象實(shí)例為true。例如:varBoolVal1=newBoolean(); //BoolVal1值為falsevarBoolVal2=newBoolean(""); //BoolVal2值為falsevarBoolVal3=newBoolean(8); //BoolVal3值為truevarBoolVal4=newBoolean("This");//BoolVal4值為true6.Boolean對(duì)象
5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
Function對(duì)象提供了另一種定義和使用函數(shù)的方法。利用Fonction對(duì)象定義函數(shù)對(duì)象實(shí)例的語(yǔ)法為:var
FuncName=newFunction([arg1],[arg2],…,FuncString);其中,F(xiàn)uncName是函數(shù)名,arg1,arg2,…,是函數(shù)的形式參數(shù),它們可以沒(méi)有;FuncString是字符串形式的函數(shù)體。這樣定義的函數(shù)實(shí)例,可以像普通函數(shù)一樣調(diào)用。例如:var
setColor=newFunction("document.color='darkgreen'");以后就可以調(diào)用它;例如:if(MustSetColor)then{serColor();}利用Function對(duì)象定義和調(diào)用函數(shù)與前面討論的函數(shù)定義和使用方法相比,后者在執(zhí)行速度上更快一些,所以以使用后一種方法為主。
7.Function對(duì)象
5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
預(yù)定義函數(shù)不屬于任何對(duì)象,不必通過(guò)對(duì)象來(lái)引用它們。
8.預(yù)定義函數(shù)(1)eval函數(shù)語(yǔ)法為:eval(string);其中,string是一個(gè)字符串,它的內(nèi)容應(yīng)是一個(gè)合法表達(dá)式。eval函數(shù)將表達(dá)式求值,返回該值。例如:varsum=eval("2+3*4");//sum的值為14vara=2;var
val=eval("5+3*a");//val的值為115.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
8.預(yù)定義函數(shù)(2)isNaN函數(shù)語(yǔ)法為:isNaN(testValue);其中,testValue是被測(cè)試的表達(dá)式,它可以是任意類型的表達(dá)式。isNaN測(cè)試表達(dá)式的值是否為NaN,若是,isNaN返回true;否則返回false。注意,有些平臺(tái)不支持NaN常量,則此函數(shù)無(wú)效。
5.1腳本語(yǔ)言JavaScript5.1.5常用的內(nèi)建對(duì)象和函數(shù)
8.預(yù)定義函數(shù)(3)parseInt和parseFloat函數(shù)
parseInt函數(shù)的語(yǔ)法格式為:parseInt(str[,radix])其中,str是一個(gè)字符串??蛇x參數(shù)radix是整數(shù),若給出,則表示基數(shù);若未給出,則表示基數(shù)為10。parseInt函數(shù)先對(duì)字符串形式的表達(dá)式求值,若求出的值是整數(shù),則轉(zhuǎn)換為相應(yīng)基數(shù)的數(shù)值。若不能求出整數(shù)值,則返回NaN或0。
parseFloat函數(shù)的語(yǔ)法格式為:parseFloat(str)parseFloat函數(shù)的使用與parseInt類似,其所求的值為浮點(diǎn)數(shù)。
5.1腳本語(yǔ)言JavaScript5.2瀏覽器對(duì)象模型及應(yīng)用
動(dòng)態(tài)網(wǎng)頁(yè)內(nèi)容在下載到瀏覽器后,不必再通過(guò)Web服務(wù)器就可以使瀏覽器與用戶互相交換信息。而瀏覽器之所以能夠與網(wǎng)頁(yè)交互,除了使用CSS所提供的網(wǎng)頁(yè)版面配置和編排方式外,瀏覽器本身的對(duì)象模型也提供了操作網(wǎng)頁(yè)元素的能力。瀏覽器對(duì)象模型將網(wǎng)頁(yè)處理為對(duì)象的集合,網(wǎng)頁(yè)元素都可以是對(duì)象,具有屬性、方法和事件,通過(guò)腳本語(yǔ)言就可以操作網(wǎng)頁(yè)元素。瀏覽器對(duì)象模型遵循W3C所定義的文檔對(duì)象模型DOM規(guī)范,通過(guò)使用DOM,網(wǎng)頁(yè)上的文字、圖像等都能被作為對(duì)象來(lái)處理。IE和Netscape瀏覽器的對(duì)象模型都是以DOM為基礎(chǔ)的,因此它們是兼容的。5.2瀏覽器對(duì)象模型及應(yīng)用5.2.1瀏覽器對(duì)象模型
Navigator對(duì)象層次結(jié)構(gòu):
5.2瀏覽器對(duì)象模型及應(yīng)用5.2.1瀏覽器對(duì)象模型
Navigator對(duì)象模型中的常用對(duì)象:①Navigator對(duì)象:封裝了瀏覽器名稱、版本、客戶端支持的mime類型等環(huán)境信息。②Window對(duì)象:封裝了有關(guān)窗口的屬性和窗口操作。③Frame對(duì)象:在瀏覽器中使用多個(gè)窗口時(shí)用到該對(duì)象,它與Window對(duì)象相似,對(duì)應(yīng)子窗口。④Location對(duì)象:包含基于當(dāng)前URL的信息。⑤History對(duì)象:包含瀏覽器的瀏覽歷史信息。⑥D(zhuǎn)ocument對(duì)象:最重要的對(duì)象之一,代表當(dāng)前HTML文件。⑦Form對(duì)象:包含表單的屬性和操作。⑧Anchor對(duì)象:包含頁(yè)面中錨點(diǎn)的信息。⑨Button、Password、Checkbox等對(duì)象:是Form的下層對(duì)象,對(duì)應(yīng)Form中相應(yīng)元素。
5.2瀏覽器對(duì)象模型及應(yīng)用5.2.2
Navigator對(duì)象
Navigator對(duì)象包含正在使用的瀏覽器版本信息包括appName、appVersion、AppCodeName、userAgent、mimeType、plugins屬性和javaEnabled、taintEnabled方法。Navigator對(duì)象的主要用途是判別客戶瀏覽器的類別,以便針對(duì)不同瀏覽器的特性而設(shè)計(jì)不同的顯示。
5.2瀏覽器對(duì)象模型及應(yīng)用5.2.2
Navigator對(duì)象
Navigator對(duì)象常用屬性和方法表屬性或方法名含
義appName以字符串形式表示瀏覽器名稱appVersion以字符串形式表示瀏覽器版本信息,包括瀏覽器的版本號(hào)、操作系統(tǒng)名稱等appCodeName以字符串形式表示瀏覽器代碼名字,通常值為MozillauserAgent以字符串表示完整的瀏覽器版本信息,包括appName、appVersion、appCodeName信息mimeType在瀏覽器中可以使用的mime類型plugins在瀏覽器中可以使用的插件①javaEnabled()返回邏輯值,表示客戶瀏覽器可否使用Java5.2瀏覽器對(duì)象模型及應(yīng)用5.2.2
Navigator對(duì)象
【例5-11】根據(jù)瀏覽器的類型顯示不同的頁(yè)面。
<html><head><title>Navigator對(duì)象</title></head><body><center><fontface=“隸書(shū)”color=redsize=6>歡迎您來(lái)訪</font></center><scriptlanguage="JavaScript">if(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 26871-2024電觸頭材料金相試驗(yàn)方法
- 客運(yùn)線路租賃承包合同模板
- 醫(yī)師勞動(dòng)合同樣本
- 海參購(gòu)銷合同范本
- 網(wǎng)絡(luò)市場(chǎng)數(shù)據(jù)調(diào)研
- 專業(yè)工程裝修施工合同模式
- 原料采購(gòu)合同糾紛處理
- 無(wú)房產(chǎn)證房屋買賣合同模板
- 個(gè)人古董珠寶買賣協(xié)議
- 園區(qū)合作投資三方協(xié)議格式
- 政府采購(gòu)會(huì)議領(lǐng)導(dǎo)講話稿
- 內(nèi)部控制評(píng)價(jià)的內(nèi)容內(nèi)部控制評(píng)價(jià)制度
- 新建國(guó)際學(xué)校項(xiàng)目商業(yè)計(jì)劃書(shū)
- 會(huì)計(jì)工作年限證明
- 社會(huì)工作名詞解釋
- 加油站安全生產(chǎn)責(zé)任制
- [中文名字翻譯英文名字]中文名字翻譯港式英文名字
- 景觀水凈化方案
- 現(xiàn)場(chǎng)材料浪費(fèi)罰款單(精編版)
- 制漿車間操作規(guī)程(山東海韻公司)
- 格賓石籠施工技術(shù)交底
評(píng)論
0/150
提交評(píng)論