Web編程基礎(chǔ) 第6章 JavaScript對象學(xué)習(xí)資料_第1頁
Web編程基礎(chǔ) 第6章 JavaScript對象學(xué)習(xí)資料_第2頁
Web編程基礎(chǔ) 第6章 JavaScript對象學(xué)習(xí)資料_第3頁
Web編程基礎(chǔ) 第6章 JavaScript對象學(xué)習(xí)資料_第4頁
Web編程基礎(chǔ) 第6章 JavaScript對象學(xué)習(xí)資料_第5頁
已閱讀5頁,還剩76頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第6章JavaScript對象

內(nèi)容提要小結(jié)6.2JavaScript自定義對象6.1JavaScript核心對象對象是客觀世界中存在的實(shí)體,對象有自己的特性,狀態(tài)和行為。對象的狀態(tài)由具有當(dāng)前值的屬性組成,對象的行為由方法組成。JavaScript是基于對象的腳本語言,而不是完全的面向?qū)ο蟮木幊陶Z言。在JavaScript中可以使用的對象主要由以下幾類:JavaScript的核心對象,例如Date和Math;用戶自定義的對象;由瀏覽器根據(jù)Web頁面的內(nèi)容自動(dòng)提供的對象,又稱為宿主對象,例如document對象;服務(wù)器上的固有對象;6.1JavaScript核心對象JavaScript的核心對象主要有以下幾種:數(shù)組對象Array字符串對象String日期對象Date數(shù)學(xué)對象Math6.1.1數(shù)組對象數(shù)組對象用來在單一的變量名中存儲(chǔ)一系列的值。數(shù)組是在編程語言中經(jīng)常使用的一種數(shù)據(jù)結(jié)構(gòu),可以用來存儲(chǔ)一系列的值。對于強(qiáng)類型的高級(jí)程序設(shè)計(jì)語言來說,數(shù)組中的元素類型必須是相同的,但在JavaScript中,同一個(gè)數(shù)組中可以存儲(chǔ)不同數(shù)據(jù)類型的元素。1.創(chuàng)建數(shù)組Array對象表示數(shù)組,創(chuàng)建數(shù)組的方法有以下幾種:vararray=newArray();創(chuàng)建一個(gè)空數(shù)組,長度為0?;蛘撸簐ararray=newArray(size);創(chuàng)建一個(gè)大小為size的數(shù)組?;蛘撸簐ararray=newArray(element0,element1,…);創(chuàng)建一個(gè)數(shù)組并賦值?;蛘呤褂米置嬷担簐ararray=[2,4,6,8,10];數(shù)組的長度是可變的,即使創(chuàng)建了固定長度的數(shù)組,仍然可以在長度之外存儲(chǔ)元素,數(shù)組的長度會(huì)隨之改變。2.訪問數(shù)組通過索引可以訪問數(shù)組元素,索引值為0~length-1(數(shù)組的長度為length)。例如:vararray=newArray(2,3,5);document.write(array[1]);//輸出結(jié)果為33.?dāng)?shù)組的屬性數(shù)組對象包括三個(gè)屬性:length、prototype、constructor。(1)length屬性length屬性表示數(shù)組的長度,即數(shù)組中包括的元素的個(gè)數(shù)。js1.html:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>數(shù)組對象的長度屬性</title></head><body><script>

vararray=newArray("A","B","C","D");

document.write("初始的數(shù)組元素為:");

printArray(array);

array.length=7;

document.write("length變大的數(shù)組元素為:");

printArray(array);

array.length=3;

document.write("length變小的數(shù)組元素為:");

printArray(array);document.write("array[5]="+array[5]);functionprintArray(array){

for(vari=0;i<array.length;i++){

document.write(array[i]+" ");}

document.write("<br/>");}</script></body></html>js1.html的顯示結(jié)果如圖所示。(2)prototype屬性prototype屬性是所有JavaScript對象所共有的屬性,用于將新定義的屬性或者方法添加到對象中,對象的實(shí)例可以調(diào)用添加的屬性或方法。為對象添加方法的語法如下:Atotype.methodName=functionName;或者:Atotype.methodName=function([param1][,param2]…){Statements;}為對象添加屬性的語法如下:Aperty=propertyName;例如js2.html,將數(shù)組的打印輸出以及返回?cái)?shù)組中的最大值的方法利用prototype屬性添加到Array對象中。<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Array對象的prototype屬性</title><script>functionarray_max(){

var

i,max=this[0];

for(i=1;i<this.length;i++){

if(max<this[i]){ max=this[i]; } } returnmax;}

functionarray_print(){

for(vari=0;i<this.length;i++){

document.write(this[i]+" "); }

document.write("<br/>");}

//將array_max和array_print方法添加到Array對象

Atotype.max=array_max;

Atotype.print=array_print;//驗(yàn)證max和print方法

vararray=newArray(32,8,-12,156,78);

document.write("數(shù)組元素值為:");

array.print();

document.write("數(shù)組中最大的元素值為:"+array.max());</script></head><body></body></html>js2.html的顯示結(jié)果如圖所示。(3)constructor屬性constructor屬性返回對創(chuàng)建此對象的數(shù)組函數(shù)的引用,其語法為Array.constructor。js3.html:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Array對象的constructor屬性</title><script>

vara=newArray();

if(a.constructor=Array){

document.write("arrayisArray");}elseif(a.constructor=Boolean){

document.write("aisBoolean");}</script></head><body></body></html>js3.html的顯示結(jié)果如圖所示。4.?dāng)?shù)組的方法Array對象提供了一些數(shù)組常用的方法,如表所示。方法說明concat()連接兩個(gè)或更多的數(shù)組,并返回結(jié)果join()通過指定的分隔符進(jìn)行分隔,將數(shù)組所有的元素連接成一個(gè)字符串pop()刪除并返回?cái)?shù)組的最后一個(gè)元素push()向數(shù)組的末尾添加一個(gè)或多個(gè)元素,并返回新的長度reverse()顛倒數(shù)組中元素的順序shift()刪除并返回?cái)?shù)組中的第一個(gè)元素slice()從某個(gè)已有的數(shù)組返回選定的元素sort()對數(shù)組的元素進(jìn)行排序splice()插入、刪除或者替換數(shù)組中的元素toSource()返回該對象的源代碼toString()將數(shù)組轉(zhuǎn)換成字符串,并返回結(jié)果toLocaleString()將數(shù)組轉(zhuǎn)換成本地?cái)?shù)組,并返回結(jié)果unshift()向數(shù)組的開頭添加一個(gè)或更多元素,并返回新的長度valueOf()返回?cái)?shù)組對象的原始值(1)sort()方法Array對象的sort()方法如果沒有參數(shù),是按照字符編碼的升序?qū)?shù)組中的元素進(jìn)行排序,即使是整型的數(shù)據(jù),也按照字符的編碼順序排序。js4.html:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Array對象的方法</title><script>

vararray=newArray();//初始化數(shù)組

initArray();

document.write("排序之前的數(shù)組:<br/>"+array+"<br/>");

document.write("按升序排序的數(shù)組:<br/>"+array.sort(sortNumberAsc)+"<br/>");

document.write("按降序排序的數(shù)組:<br/>"+array.sort(sortNumberDesc)+"<br/>");

document.write("按字符編碼排序的數(shù)組:<br/>"+array.sort())functionsortNumberAsc(a,b){

if(a<b){ return-1; } elseif(a==b){ return0; } else{ return1; }}

functionsortNumberDesc(a,b){

if(a<b){ return1; } elseif(a==b){ return0; } else{ return-1; }}functioninitArray(){

while(true){

vara=prompt("請輸入數(shù)值,要結(jié)束時(shí)請輸入非數(shù)值數(shù)據(jù),例如'abc'","");

if(isNaN(a)){ break; } else{ //將輸入的值保存到數(shù)組的最后一個(gè)位置

array.push(parseFloat(a)); } }

}</script></head><body></body></html>請求js4.html,并輸入相應(yīng)的數(shù)據(jù)21.3,9,89,45,112,543,abc,顯示結(jié)果如圖所示。(2)splice()方法Array對象的splice()方法可以實(shí)現(xiàn)在數(shù)組中插入、刪除或者替換元素的功能。其語法格式如下:splice(index,n,value1,value2,…);其中,index參數(shù)是必需的,指的是在數(shù)組中插入、刪除或者替換元素的位置。n值也是必需的,規(guī)定刪除的元素的個(gè)數(shù),可以取0。value1,value2等為插入到數(shù)組中的新元素,從index所指的下標(biāo)開始插入元素。另外,在JavaScript中只有一維數(shù)組,不能直接定義多維數(shù)組,例如以下方式是錯(cuò)誤的:

vararray=newArray(2,3);但是多維數(shù)組可以通過一維數(shù)組的嵌套定義來實(shí)現(xiàn)。例如:vararray=newArray((1,2,3),(4,5,6));//定義二維數(shù)組alert(array[1][1]);//顯示元素56.1.2字符串對象字符串對象是JavaScript中比較常用的一種基本數(shù)據(jù)類型,它封裝了一個(gè)字符串,并且提供了相應(yīng)的方法,例如連接字符串、取子串,分割子符串等。JavaScript中的字符串是不可變的,原始的字符串值不可修改,例如String.toLowerCase(),返回的字符串是全新的字符串。1.創(chuàng)建字符串創(chuàng)建字符串有多種方法,可以使用字面值定義字符串。例如:varstr1=“WelcometoChina!”;創(chuàng)建類型為String的變量,也可以使用單引號(hào)。也可以使用new運(yùn)算符調(diào)用String的構(gòu)造方法來創(chuàng)建字符串,返回一個(gè)新建的字符串對象,類型為object。例如:varstr2=newString(“WelcometoChina!”);也可以省略new運(yùn)算符,直接調(diào)用String的構(gòu)造方法。返回的類型為String,例如:varstr3=String(“WelcometoChina!”);2.字符串的屬性String對象的屬性類似于Array對象的屬性,有l(wèi)ength、prototype以及constructor,用法也類似。String的length屬性返回的是字符的數(shù)目,不是編碼的長度,漢字被認(rèn)為是一個(gè)字符。js5.html:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Array對象的length屬性</title><script>

varstr1="IloveChina!";

varstr2="我愛中國!";

varstr3="Ilove中國!";document.write(str1+"<br/>長度為"+str1.length+"<br/>");document.write(str2+"<br/>長度為"+str2.length+"<br/>");document.write(str3+"<br/>長度為"+str3.length);</script></head><body></body></html>js5.html的顯示結(jié)果如圖所示。3.字符串的方法JavaScript提供了豐富的對字符串進(jìn)行操作的方法,如表所示。方法說明chartAt()返回指定位置的字符concat()連接字符串indexOf()檢索子串的位置split()按照指定的分割符,將字符串分割成字符串?dāng)?shù)組substring()按照索引號(hào)取子串toLowerCase()將字符串轉(zhuǎn)換成小寫并返回toUpperCase()將字符串轉(zhuǎn)換成大寫并返回replace()替換字符串a(chǎn)nchor()創(chuàng)建錨點(diǎn)(1)charAt()charAt()是根據(jù)索引號(hào)返回字符串中的一個(gè)字符,語法格式為:string.charAt(index);//index為索引號(hào),有效值為0~length-1,漢字作為一個(gè)字符來處理js6.html:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>String對象的charAt()方法</title><script>

varstr1="";document.write(str1+"<br/>");document.write("charAt(5)="+str1.charAt(5)+"<br/>");

varstr2="Ilove中國";document.write(str2+"<br/>");document.write("charAt(8)="+str2.charAt(8));</script></head><body></body></html>js6.html的顯示結(jié)果如圖所示。(2)concat()concat()方法用于連接多個(gè)字符串,并返回連接后的結(jié)果,其語法如下:string.concat(str1,str2,…);//可包含1個(gè)或多個(gè)參數(shù)js7.html:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>String對象的concat()方法</title><script>

varstr1="Hello,";

varstr2="Welcometo";

varstr3="China!";document.write(str2.concat(str3)+"<br/>");document.write(str1.concat(str2,str3));</script></head><body></body></html>js7.html的顯示結(jié)果如圖所示。(3)indexOf()indexOf()方法是查詢子串在字符串中出現(xiàn)的位置索引,有效值為0~length-1,length為字符串的長度;如果不存在子串,則返回-1。其格式如下:string.indexOf(substring,startpos);//查找string中substring在startpos之后第一次出現(xiàn)的位置或者:string.indexOf(substring);//查找string中substring第一次出現(xiàn)的位置js8.html:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>String對象的indexof()方法</title><script>

var

str="Ilove中國,WelcometoChina!";

document.write(str+"<br/>");

document.write("str.indexOf('中國')="+str.indexOf("中國")+"<br/>");

document.write("str.indexOf('e')="+str.indexOf("e")+"<br/>");

document.write("str.indexOf('Beijing')="+str.indexOf("Beijing"));</script></head><body></body></html>js8.html的顯示結(jié)果如圖所示。split()方法用于按照指定的分隔符,將一個(gè)字符串分割成字符串?dāng)?shù)組。其語法格式如下:string.split(separator,howmany);其中,separator是分隔符,是必需的參數(shù),可以用字符串或正則表達(dá)式表示。howmany是返回字符串的長度,可選。如果設(shè)置了該參數(shù),則返回的字符串?dāng)?shù)組的長度不會(huì)大于此參數(shù)。如果沒有設(shè)置,則返回整個(gè)字符串被分割后的結(jié)果。如果使用空字符串作為分隔符,則字符串會(huì)被分割成單個(gè)字符。string.split()執(zhí)行的操作和Array.join()操作是相反的。js9.html:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>String對象的split()方法</title><script>

var

str="WelcometoChina!";

document.write(str+"<br/>");

document.write(str.split("")+"<br/>");

document.write(str.split("")+"<br/>");document.write(str.split("",5));</script></head><body></body></html>js9.html的顯示結(jié)果如圖所示。(5)substring()substring()方法用于返回字符串的子串,可以返回指定的兩個(gè)下標(biāo)之間的字符,格式如下:string.substring(start,end);js10.html:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>String對象的substring()方法</title><script>

var

str="WelcometoChina!";

document.write(str+"<br/>");document.write("str.substring(2,9)="+str.substring(2,9)+"<br/>");document.write("str.substring(9,2)="+str.substring(9,2)+"<br/>");document.write("str.substring(7)="+str.substring(7)+"<br/>");</script></head><body></body></html>js10.html的顯示結(jié)果如圖所示。4.轉(zhuǎn)義字符在JavaScript中,如果要輸出一些特殊字符,例如雙引號(hào),單引號(hào),或者要輸出一些無法通過鍵盤直接輸入的字符,例如退格等,需要使用轉(zhuǎn)義字符。js11.html:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>轉(zhuǎn)義字符的使用</title><script>

document.write("You\&mearegoodfriends!<br/>");

document.write("目標(biāo)文件在C:\\program目錄下<br/>");

document.write("str=\"WelcometoChina!\"");</script></head><body></body></html>js11.html的顯示結(jié)果如圖所示。6.1.3日期對象在JavaScript中提供了Date對象,用于處理和日期相關(guān)的內(nèi)容。通過Date對象可以獲取系統(tǒng)時(shí)間,設(shè)置時(shí)間等。Date對象也具有prototype和constructor屬性。1.創(chuàng)建日期創(chuàng)建日期的方法有多種。(1)可以使用以下語句,創(chuàng)建一個(gè)表示系統(tǒng)當(dāng)前的日期和時(shí)間:vardate=newDate();(2)可以使用字符串類型的參數(shù),指定日期和時(shí)間以及具體的格式,例如:vardate=newDate(“MM/dd/yyyy

HH:mm:ss”);(3)可以使用整型參數(shù),創(chuàng)建距離JavaScript內(nèi)部定義的超始時(shí)間1970年1月1日的某一毫秒數(shù)的日期和時(shí)間。例如:vardate=newDate(milliseconds);(4)可以使用構(gòu)造函數(shù)創(chuàng)建日期,參數(shù)可以為2~7個(gè),依次按照year、month、day、hours、minutes、seconds、milliseconds匹配。例如:vardate=newDate(year,month);vardate=newDate(year,month,day);vardate=newDate(year,month,day,hours);vardate=newDate(year,month,day,hours,minutes);vardate=newDate(year,month,day,hours,minutes,seconds);vardate=newDate(year,month,day,hours,minutes,seconds,milliseconds);2.日期對象的屬性和方法

Date對象的prototype屬性的用法類似于Array對象。Date對象提供了豐富的日期獲取類、設(shè)置類、輸出類以及解析類方法。js12.html:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>Date對象的使用</title><script>

vardate=newDate();

document.write("現(xiàn)在是"+date.getFullYear()+"年"+(date.getMonth()+1) +"月"+date.getDate()+"日  ");

varday=date.getDay(); switch(day){ case0: d="星期天"; break; case1: d="星期一"; break; case2: d="星期二"; break; case3: d="星期三"; break;

case4: d="星期四"; break; case5: d="星期五"; break; default: d="星期六"; }

document.write(d+" "); if(date.getHours()<10){ document.write("0"); }

document.write(date.getHours()+":"); if(date.getMinutes()<10){ document.write("0"); }

document.write(date.getMinutes()+":"); if(date.getSeconds()<10){ document.write("0"); }

document.write(date.getSeconds());</script></head><body></body></html>js12.html的顯示結(jié)果如圖所示。利用Date對象實(shí)現(xiàn)客戶端動(dòng)態(tài)時(shí)鐘的用法可參照js13.html。<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>利用Date實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘</title><script>functionshowTime(){

vardate=newDate();

var

str;

str=date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate()+" ";

str+=full(date.getHours())+":"+full(date.getMinutes())+":"+full(date.getSeconds());

document.getElementById("time").innerHTML=str;}functionfull(n){

if(n<10){n="0"+n;}returnn;}window.setInterval("showTime()",1000);</script></head><body><divid="time"></div></body></html>js13.html的顯示結(jié)果如圖所示,時(shí)間會(huì)動(dòng)態(tài)變化。6.1.4數(shù)學(xué)對象JavaScript中提供了Math對象,Math對象包含一些常用屬性和方法,Math對象與Array對象、String對象、Date對象不同,沒有構(gòu)造函數(shù),因此不能創(chuàng)建Math對象。如果要使用Math對象的屬性或方法時(shí),直接通過Math.屬性名或者M(jìn)ath.方法名調(diào)用。1.Math對象的屬性對于數(shù)學(xué)運(yùn)算中經(jīng)常使用的一些常量值,Math對象提供了一系列的屬性,如表所示。屬性名說明E自然對數(shù)的底數(shù)(約等于2.718)LN22的自然對數(shù)LN1010的自然對數(shù)LOG2E以2為底的E的對數(shù)LOG10E以10為底的E的對數(shù)PI圓周率(約等于3.14159)SQRT1_22的平方根的倒數(shù)SQRT22的平方根2.Math對象的方法Math對象的方法如表所示。方法名說明sin(x)/cos(x)/tan(x)返回x的正弦/余弦/正切值asin(x)/acos(x)/atan(x)返回x的反正弦/反余弦/反正切值abs(x)返回x的絕對值ceil(x)返回大于等于x的最小整數(shù)floor(x)返回小于等于x的最大整數(shù)exp(x)返回E的x次冪log(x)返回以e為底x的對數(shù)max(x,y,…)/min(x,y,…)返回x,y,…的最大值/最小值pow(x,y)返回x的y次冪random()返回0~1之間的隨機(jī)數(shù)round(x)返回x四舍五入之后的整數(shù)sqrt(x)返回x的平方根js14.html:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>random()方法的使用</title><script>

vararray1=newArray();

vararray2=newArray();

for(vari=0;i<5;i++){//產(chǎn)生值為1-50的隨機(jī)整數(shù)

array1[i]=parseInt(Math.random()*50+1);//產(chǎn)生值為60-90的隨機(jī)整數(shù)

array2[i]=parseInt(Math.random()*31+60);}

document.write("array1為:"+array1+"<br/>");

document.write("排序后:"+array1.sort(sortNumberAsc)+"<br/>");document.write("array2為:"+array2+"<br/>");

document.write("排序后:"+array2.sort(sortNumberAsc));functionsortNumberAsc(a,b){

if(a<b){ return-1; } elseif(a==b){ return0; } else{ return1; }}</script></head><body></body></html>

js14.html的隨機(jī)顯示結(jié)果如圖所示。刷新頁面,隨機(jī)數(shù)會(huì)發(fā)生變化。6.2JavaScript自定義對象在JavaScript中,除了內(nèi)置的對象Array,String,Date之外,還可以創(chuàng)建自定義對象。對象是一種特殊的數(shù)據(jù)類型,可以具有一系列的屬性和方法。6.2.1使用原型添加屬性和方法所有的內(nèi)置對象和用戶的自定義對象都具有只讀的prototype屬性,通過prototype屬性可以為對象添加屬性或方法,添加的屬性或方法可被所有的對象實(shí)例共享。其格式如下:totype.method=function(){…}perty=property;例如js15.html,利用原型添加判斷字符串是否是回文串的方法。<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>利用原型為String對象添加方法</title><script>

Stotype.isPalindrome=function(){

varflag=true;

for(vari=0;i<this.length/2;i++){

if(this.charAt(i)!=this.charAt(this.length-i-1)){flag=false;break;}}returnflag;}

varstr1="WelcometoChina!";document.write(str1+":<br/>"+str1.isPalindrome()+"<br/>");

varstr2="abcdefgfedcba";document.write(str2+":<br/>"+str2.isPalindrome());</script></head><body></body></html>js15.html的顯示結(jié)果如圖所示。6.2.2創(chuàng)建自定義對象在JavaScript中創(chuàng)建自定義對象有以下四種方法:JSON方法構(gòu)造函數(shù)方法原型方法混合方法1.JSON方法JSON(JavaScriptObjectNotation,JavaScript對象表示法)是一種輕量級(jí)的數(shù)據(jù)交換格式,采用完全獨(dú)立于語言的文本格式,是理想的數(shù)據(jù)交換格式,特別適合于JavaScript與服務(wù)器的數(shù)據(jù)交互。(1)創(chuàng)建JSON格式的對象利用JSON格式創(chuàng)建對象的格式如下:var

jsonobject={

propertyname:value,//對象內(nèi)的屬性

functionname:function(){statements;}//對象內(nèi)的方法};js16.html:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>創(chuàng)建JSON格式的對象</title><script>

varuser={ username:"王明明", age:20, info:{tel:1234567,mobile, address: [ {city:"beijing",postcode:"100000"}, {city:"shanghai",postcode:"200000"} ],

show:function(){

document.write("username:"+this.username+"<br/>");

document.write("age:"+this.age+"<br/>");

document.write("info.tel:"+.tel+"<br/>");

document.write("info.mobile:"+.mobile+"<br/>");

document.write("address:"+"<br/>"); document.write("city:"+this.address[0].city+",postcode:"+this.address[0].postcode+"<br/>"); document.write("city:"+this.address[1].city+",postcode:"+this.address[1].postcode+"<br/>"); } };

user.show();</script></head><body></body></html>js16.html的顯示結(jié)果如圖所示。(2)解析JSON格式的字符串JSON最常見的用法之一是從Web服務(wù)器上讀取JSON數(shù)據(jù),將JSON數(shù)據(jù)轉(zhuǎn)換成JavaScript對象,然后在網(wǎng)頁中使用該對象。例如可以使用eval()函數(shù)解析符合JSON格式的字符串。eval()函數(shù)使用的是JavaScript編譯器,可解析JSON文本,然后生成JSON對象,但是必須把文本包含在括號(hào)中,把字符串強(qiáng)制轉(zhuǎn)換成普通的JavaScript對象,才可以避免語法錯(cuò)誤。例如:varu=eval('('+user+')');如果被解析的字符串是數(shù)組格式,則不必使用圓括號(hào)進(jìn)行強(qiáng)制轉(zhuǎn)換。js17.html:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>解析JSON格式的字符串</title><script>

varuser='{username:"王明明",' +'age:20,' +'show:function(){'+'document.write("username:"+this.username+"<br/>");'+'document.write("age:"+this.age);'+'}'+'}';

varu=eval('('+user+')');

u.show();</script></head><body></body></html>js17.html的顯示結(jié)果如圖所示。2.構(gòu)造函數(shù)方法可以設(shè)計(jì)一個(gè)構(gòu)造函數(shù),然后通過調(diào)用構(gòu)造函數(shù)來創(chuàng)建對象。構(gòu)造函數(shù)可以帶有參數(shù),也可以不帶參數(shù)。其語法格式如下:functionfuncName([param1[,param2[,param3…]]]){perty1=value1|param1;…

this.methodName=function(){};…};js18.html:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>使用構(gòu)造函數(shù)創(chuàng)建對象</title><script>functionUser(name,age,address,mobile,email){

=name;

this.age=age;

this.address=address;

this.mobile=mobile;

this.email=email;

this.show=function(){

document.write("name:"++"<br/>");

document.write("age:"+this.age+"<br/>");

document.write("address:"+this.address+"<br/>");

document.write("mobile:"+this.mobile+"<br/>");

document.write("email:"+this.email+"<br/>");}};

varu1=newUser("王明明",20,"山東",,"wangmingming@163.com");

varu2=newUser("李娜",19,"江蘇",,"lina@163.com");u1.show();u2.show();</script></head><body></body></html>js18.html的顯示結(jié)果如圖所示。3.原型方法使用原型方法也中以創(chuàng)建對象,即通過原型向?qū)ο筇砑颖匾膶傩院头椒?。這種方法添加的屬性和方法屬于對象,每個(gè)對象實(shí)例的屬性值和方法都是相同的,可以再通過賦值的方式修改需要修改的屬性或方法。js19.html:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><tit

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論