版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Web編程基礎(chǔ)Chapter6:面向?qū)ο缶幊?/p>
4/2/2023對象
內(nèi)置對象本地對象
Array對象用戶自定義對象提綱6.1對象對象是屬性和方法的組合屬性是對象所擁有的一組外觀特征,一般為名詞方法是對象可以執(zhí)行的功能,一般為動詞例如:汽車Ferrari對象:汽車屬性:型號:法拉利顏色:綠色方法:前進、剎車、倒車6.2內(nèi)置對象Global對象Math對象6.2內(nèi)置對象Global對象Math對象6.2.1Global對象Global對象的屬性Array:用于引用Array對象的構(gòu)造函數(shù)。Boolean:用于引用Boolean對象的構(gòu)造函數(shù)。Date:用于引用Date對象的構(gòu)造函數(shù)。EvalError:用于引用EvalError對象的構(gòu)造函數(shù)。Function:用于引用Function對象的構(gòu)造函數(shù)。Infinity:返回Number.POSITIVE_INFINITY的初始值。NaN:返回特殊值NaN,表示表達式不是數(shù)字。Number:用于引用Number對象的構(gòu)造函數(shù)。Object:用于引用Object對象的構(gòu)造函數(shù)。RangeError:用于引用RangeError對象的構(gòu)造函數(shù)。ReferenceError:用于引用ReferenceError對象的構(gòu)造函數(shù)。RegExp:用于引用RegExp對象的構(gòu)造函數(shù)。Error:用于引用Error對象的構(gòu)造函數(shù)。String:用于引用String對象的構(gòu)造函數(shù)。SyntaxError:用于引用SyntaxError對象的構(gòu)造函數(shù)。TypeError:用于引用TypeError對象的構(gòu)造函數(shù)。URIError:用于引用URIError對象的構(gòu)造函數(shù)。6.2.2Math對象Math對象:執(zhí)行常見數(shù)學計算使用數(shù)學對象的語法規(guī)則如下:Math.屬性名Math.方法名(參數(shù)1,參數(shù)2,……)6.2.2Math對象屬性數(shù)學意義值E歐拉常數(shù),自然對數(shù)的底約等于2.7138LN22的自然對數(shù)約等于0.6931LN1010的自然對數(shù)約等于2.3026LOG2E2為底的e的自然對數(shù)約等于1.4427LOG10E10為底的e的自然對數(shù)約等于0.4343PI∏約等于3.14159SQRT1_20.5的平方根約等于0.707SQRT22的平方根約等于1.4146.2.2Math對象方法意義示例abs(x)返回x的絕對值abs(2)結(jié)果為2,abs(-2)結(jié)果為2acos(x)返回某數(shù)的反余弦值(以弧度為單位),x在-1至1范圍內(nèi)acos(1)結(jié)果為0asin(x)返回某數(shù)的反正弦值(以弧度為單位)asin(0.5)結(jié)果約為0.5236atan(x)返回某數(shù)的反正切值(以弧度為單位)atan(1)結(jié)果約為0.7854ceil(x)返回與某數(shù)相等或大于該數(shù)的最小整數(shù)ceil(-15)結(jié)果為-15,ceil(-15.6)結(jié)果為-15,ceil(15.2)結(jié)果為-16,ceil(15)結(jié)果為15cos(x)返回某數(shù)(以弧度為單位)的余弦值cos(Math.PI*2/6)結(jié)果為0.5exp(x)返回e的x次方exp(2)結(jié)果約為7.389floor(x)與ceil相反,返回與某數(shù)相等或小于該數(shù)的最小整數(shù)floor(-15)結(jié)果為-15,floor(-15.6)結(jié)果為-16,floor(15.2)結(jié)果為15,floor(15)結(jié)果為15log(x)返回某數(shù)的自然對數(shù)(以e為底)Log(Math.E)結(jié)果為16.2.2Math對象<HTML><HEAD><METAhttp-equiv="refresh"content="2"><TITLE>自動刷新</TITLE><SCRIPTlanguage="JavaScript">document.write("2秒自動刷新,隨機顯示圖片");vari=Math.round(Math.random()*8+1);document.write("<imgwidth=600height=400src="+i+".jpg/>“);</SCRIPT></HEAD><body></body></HTML>假定隨機產(chǎn)生的數(shù)字i=3,上述代碼即為:<IMGwidth=600height=400src=3.jpg>顯示第三幅圖片(3.jpg)如何實現(xiàn)Math.round(Math.random()*8+1)產(chǎn)生1-9的數(shù)字6.3本地對象Numer對象String對象Boolean對象Array對象Date對象Object對象6.3.1Number對象Number對象varn=newNumber(numericValue);toString():返回數(shù)值對象的字符串表示valueOf():返回指定數(shù)值對象的原始值charAt返回字符串指定位置的字符toLowerCase轉(zhuǎn)換成小寫字母toUpperCase轉(zhuǎn)換成大寫字母indexOf(String,index)從左開始查找lastIndexOf(String,index)
從右開始查找6.3.2String對象varbanana="banana";varindex1=banana.indexOf(‘a(chǎn)’);varindex2=banana.lastIndexOf(‘a(chǎn)’);varindex3=banana.lastIndexOf(‘h’);varindex4=banana.indexOf(‘a(chǎn)’,2);varindex5=banana.lastIndexOf(‘a(chǎn)’,4);varindex6=banana.lastIndexOf(‘h’,2);varindex7=banana.indexOf(“an”);varindex8=banana.lastIndexOf(“an”);varindex9=banana.lastIndexOf(“hh”);6.3.2String對象課堂練習vars=“一個任意字符串”;vars1=“任意字符”;編寫代碼,判斷s1是否在s中在,輸出s1的首次出現(xiàn)位置不在,輸出”找不到指定字符:”+s1vars="一個任意字符串";vars1="任意字符";if(s.indexOf(s1)!=-1)document.writeln(s.indexOf(s1));elsedocument.writeln("找不到字符串:"+s1);舉例varmyStr="五岳歸來不看山";varsubStr=myStr.substring(2);varsubStr=myStr.substring(2,6);split方法用于將一個字符串分割為子字符串,然后將結(jié)果作為字符串數(shù)組返回。舉例:vars="abcedfab";vara=s.split("");document.writeln(a.join("<br/>"));輸出:abcedfab6.3.2String對象6.3.3Boolean對象Boolean對象varb=newBoolean(booleanValue);初始值為true:booleanValue為1、true或非空字符串初始值為false:booleanValue為0、false或空字符串toString():返回Boolean對象的字符串表示valueOf():返回指定Boolean對象的原始值6.3.4Array對象Array對象的方法concat:把兩個數(shù)組組合成一個新數(shù)組并返回該數(shù)組。join:把數(shù)組的所有元素連接起來形成一個String對象并返回該對象。pop:移除數(shù)組中的最后一個元素并返回該元素。push:把新元素添加到數(shù)組中并返回數(shù)組的新長度值。reverse:反轉(zhuǎn)數(shù)組的元素順序并返回反轉(zhuǎn)后的數(shù)組。shift:移除數(shù)組aArray中的第一個元素并返回該元素。slice:返回數(shù)組的一段。sort:返回一個元素已經(jīng)進行了排序的Array對象。splice:從一個數(shù)組中移除一個或多個元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。toLocaleString:返回由數(shù)組aArray的元素構(gòu)成的字符串,若數(shù)組元素為日期對象,則該日期使用當前區(qū)域設(shè)置轉(zhuǎn)換為字符串。toString:返回數(shù)組對象的字符串表示。unshift:把指定的元素插入數(shù)組開始位置并返回該數(shù)組。valueOf:返回指定Array對象的原始值。6.3.5Date對象Date對象:提供用于處理日期和時間的方法vard=newDate(DateValue);四種方式:newDate();//當前日期newDate(日期字串);newDate(年,月,日[,時,分,秒,毫秒]);newDate(毫秒);6.3.5Date對象日期對象方法語法規(guī)格意義時區(qū)Date.parse(日期字串)返回整數(shù)表示自1970年1月1日0:0:0起的毫秒數(shù)計算機指定時區(qū)日期對象.setDate(日期數(shù))設(shè)置日期對象月份中的日期數(shù)1~31計算機指定時區(qū)日期對象.setFullYear(年[,月,日])設(shè)置日期對象中的年數(shù),4位整數(shù)計算機指定時區(qū)日期對象.setHours(小時[,分,秒,毫秒])設(shè)置日期對象中的小時數(shù)計算機指定時區(qū)日期對象.setMilliseconds(毫秒)設(shè)置日期對象的毫秒數(shù)計算機指定時區(qū)日期對象.setMinutes(分[,秒,毫秒])設(shè)置日期對象的分鐘數(shù)計算機指定時區(qū)日期對象.setMonth(月[,日])設(shè)置日期對象的月份數(shù)計算機指定時區(qū)日期對象.setSeconds(秒[,毫秒])設(shè)置日期對象的秒數(shù)計算機指定時區(qū)日期對象.setTime(總毫秒數(shù))設(shè)置日期對象自1970年1月1日0:0:0起的毫秒數(shù)計算機指定時區(qū)日期對象.setYear()設(shè)置日期對象中的年數(shù),如果位數(shù)小于等于兩位,則年份表示19xx計算機指定時區(qū)6.3Date對象日期對象方法語法規(guī)格意義時區(qū)日期對象.setUTCDate()與setDate()意義相同,只是表示的時區(qū)不同格林尼治標準時間日期對象.setUTCDay()與setDay()意義相同,只是表示的時區(qū)不同格林尼治標準時間日期對象.seUTCMonth()與setMonth()意義相同,只是表示的時區(qū)不同格林尼治標準時間日期對象.setUTCFullYear()與setFullYear()意義相同,只是表示的時區(qū)不同格林尼治標準時間日期對象.setUTCHours()與setHours()意義相同,只是表示的時區(qū)不同格林尼治標準時間日期對象.setUTCMinutes()與setMinutes()意義相同,只是表示的時區(qū)不同格林尼治標準時間日期對象.setUTCSeconds()與setSeconds()意義相同,只是表示的時區(qū)不同格林尼治標準時間日期對象.setUTCMilliseconds()與setMilliseconds()意義相同,只是表示的時區(qū)不同格林尼治標準時間日期對象.toUTCString()將日期對象轉(zhuǎn)換成格林尼治標準時間的日期字串格林尼治標準時間日期對象.toLocaleString()將日期對象轉(zhuǎn)換成當?shù)貢r區(qū)的日期字串計算機指定時間Date.UTC(年,月,日[,時,分,秒,毫秒])返回整數(shù)表示自1970年1月1日0:0:0起的毫秒數(shù)格林尼治標準時間用作Date方法的參數(shù)的整數(shù):
值整數(shù)Seconds和minutes0至59Hours0至23Day0至6(星期幾)Date1至31(月份中的天數(shù))Months0至11(一月至十二月)6.3.5Date對象6.3.5Date對象<HTML><BODY><scriptlanguage="javaScript">varnow=newDate();varhour=now.getHours();if(hour>=0&&hour<=12) document.write("上午好!")if(hour>12&&hour<=18)document.write("下午好!");if(hour>18&&hour<24)document.write("晚上好!");document.write("<P>今天日期:"+now.getYear()+"年“+(now.getMonth()+1)+"月"+now.getDate()+"日");document.write("<P>現(xiàn)在時間:"+now.getHours()+"點"+now.getMinutes()+"分");</script></body></HTML>獲得當前日期和時間獲得小時,即當前是幾點判斷上午、下午還是晚上月份數(shù)字0-11,注意+1setTimeout的用法:
setTimeout(“調(diào)用的函數(shù)”,”定時的時間”)例:varmyTime=setTimeout(”disptime()”,1000);clearTimeout(myTime);1000毫秒后調(diào)用函數(shù)disptime()執(zhí)行關(guān)閉定時器6.3.5Date對象6.3.5Date對象JavaScript代碼<SCRIPTlanguage="JavaScript">functiondisptime(){vartime=newDate();//獲得當前時間varhour=time.getHours();//獲得小時、分鐘、秒varminute=time.getMinutes();varsecond=time.getSeconds();varapm="AM";//默認顯示上午:AMif(hour>12)//按12小時制顯示{hour=hour-12;apm="PM";}if(minute<10)//如果分鐘只有1位,補0顯示minute="0"+minute;if(second<10)//如果秒數(shù)只有1位,補0顯示second="0"+second;document.myform.myclock.value=hour+":"+minute+":"+second+""+apm;varmyTime=setTimeout("disptime()",1000);}</SCRIPT>無邊框的文本框myclock使用定時器函數(shù),每隔1秒調(diào)用disptime()函數(shù)刷新顯示獲得小時、分鐘、秒根據(jù)12小時制調(diào)整時間和AM/PM標志確保分鐘和秒顯示位數(shù)為2位<STYLEtype="text/css"><!--/*設(shè)置樣式:無邊框的文本框*/INPUT{ font-size:50px; color:#CC0000; border-style:none}--></STYLE></HEAD><BODYonLoad="disptime()"><FORMNAME="myform"><INPUTname="myclock"type="text"value=""></FORM>設(shè)置樣式:無邊框的文本框Onload()事件,頁面加載就調(diào)用函數(shù):disptime(顯示時間)6.3.5Date對象數(shù)組:由具有同一名字的一組連續(xù)內(nèi)存單元構(gòu)成。數(shù)組元素:訪問數(shù)組元素應指定數(shù)組名和數(shù)組元素的下標。數(shù)組的下標:從0開始6.4
Array對象數(shù)組的定義:varc=newArray(10);
下標從0-9數(shù)組的長度為10,c.length6.4
Array對象c[6]-4560721543-89062-31645378數(shù)組名cc[0]c[1]c[2]c[3]c[11]c[10]c[9]c[8]c[7]c[5]c[4]數(shù)組元素下標
6.4
Array對象數(shù)組要占據(jù)內(nèi)存空間,在JavaScript中,數(shù)組必須由new運算符動態(tài)分配內(nèi)存。數(shù)組定義:varc=newArray(12);也可分為兩步:varc;
c=
newArray(12);注意:當分配數(shù)組時,其中的元素還沒有被初始化。6.4.2
聲明與分配數(shù)組初始化數(shù)組元素c[1]=10;若給數(shù)組中所有元素賦值,結(jié)合使用循環(huán)結(jié)構(gòu)varc=newArray(5);for(vari=0;i<c.length;i++){c[i]=i;}也可以使用new分配空數(shù)組,動態(tài)增大數(shù)組:varn=newArray();for(vari=0;i<5;i++){n[i]=i;}6.4.3
數(shù)組使用示例用初始化列表對數(shù)組進行初始化
varn=[10,20,30,40,50];
varn=newArray(10,20,30,40,50);初始化部分值 varn=[10,20,,40,50];編譯器遇到包含初始值列表的數(shù)組聲明時,它會計算出數(shù)組的長度并為數(shù)組中的元素分配存儲空間。6.4.3
數(shù)組使用示例for…in控制結(jié)構(gòu)對數(shù)組中的每個元素執(zhí)行一個任務忽略數(shù)組中未定義的元素for(varelementintheArray)total+=theArray[element];6.4.3
數(shù)組使用示例課堂練習編寫程序:創(chuàng)建數(shù)組array1,長度為10,每個元素的值=下標值×2+2,輸出數(shù)組元素值。利用數(shù)組簡化擲骰子程序中的switch結(jié)構(gòu)每個數(shù)組元素代表一種情況6.4.3
數(shù)組使用示例6.4.3
數(shù)組使用示例RollDie.html
(1of2)6.4.3
數(shù)組使用示例RollDie.html
(2of2)參數(shù)傳遞的兩種方法值傳遞將產(chǎn)生參數(shù)值的一個拷貝并把它傳遞給被調(diào)用的函數(shù);不能修改調(diào)用者的數(shù)據(jù);數(shù)值和布爾值。引用傳遞調(diào)用者可以讓被調(diào)用的函數(shù)直接訪問和修改調(diào)用者的數(shù)據(jù);對象和數(shù)組6.4.4
引用與引用參數(shù)把數(shù)組名作為參數(shù)例如:數(shù)組的定義:vara=newArray(10);函數(shù)的調(diào)用:modifyarray(a);Array.join方法join將其參數(shù)視為字符串,指定分隔符。6.4.5
將數(shù)組傳遞給函數(shù)6.4.5
將數(shù)組傳遞給函數(shù)PassArray.html
(1of3)6.4.5
將數(shù)組傳遞給函數(shù)a[1][0]a[1][1]a[1][2]a[1][3]Row0Row1Row2Column0Column1Column2Column3Rowsubscript(orindex)ArraynameColumnsubscript(orindex)a[0][0]a[0][1]a[0][2]a[0][3]a[2][0]a[2][1]a[2][2]a[2][3]6.4.6
二維數(shù)組聲明和初始化varb=[[1,2],[3,4,5]];也可以如下聲明創(chuàng)建一個兩行的數(shù)組,第一行有5列,第二行有3列:
varb;
b=newArray(2);
b[0]=newArray(5);
b[1]=newArray(3);6.4.6
二維數(shù)組二維數(shù)組元素的訪問是通過行下標與列下標共同來實現(xiàn)的,如:數(shù)組名[行][列]。因為是二維數(shù)組,所以在循環(huán)顯示時,需要兩層循環(huán),外層循環(huán)控制行,內(nèi)層循環(huán)控制列。 for(vari=0;i<行數(shù);i++) {for(varj=0;j<列數(shù);j++) {…… } }6.4.6
二維數(shù)組在JavaScript程序中:創(chuàng)建一個具有5個元素的一維數(shù)組,數(shù)組元素為1,2,3,4,5。輸出數(shù)組中所有值。調(diào)用doublearray函數(shù),將數(shù)組的元素進行平方。再次輸出數(shù)組中所有值。創(chuàng)建一個名為doublearray的函數(shù)參數(shù)為一個數(shù)組,無返回值。功能是將數(shù)組中的所有元素進行平方運算。課堂練習6.4.6二維數(shù)組splice在數(shù)組中插入或移除元素slice分割數(shù)組concat連接不同的數(shù)組join使用指定分隔符生成新的字符串reverse對數(shù)組執(zhí)行倒序排列6.4.6二維數(shù)組<scripttype="text/javascript">varfruitArray=newArray('apple','peach','orange','lemon','lime','cherry');varremoved=fruitArray.splice(2,2,'melon','banana');document.writeln(removed+"<br/>");document.writeln(fruitArray+"<br/>");varnewFruit1=fruitArray.slice(2,4);document.writeln(newFruit1+"<br/>");document.writeln(fruitArray+"<br/>");varnewFruit2=fruitArray.concat(removed);document.writeln(newFruit2+"<br/>");document.writeln(fruitArray+"<br/>");varstring=fruitArray.join("");document.writeln(string+"<br/>");fruitArray.reverse();document.writeln(fruitArray);</script>6.5Object對象Object對象是其他本地對象(如Array、Date、String等)的根對象,并提供了創(chuàng)建自定義對象的基礎(chǔ)可以利用new運算符和Object類來創(chuàng)建一個對象,然后為該對象一些添加屬性和方法:varoObject=newObject(); //創(chuàng)建一個新對象oOpertyName=value; //為該對象定義屬性oObject.methodName=function(){//為該對象定義方法statements};6.5Object對象<body><scriptlanguage="javascript"type="text/javascript">oCircle=newObject();oCircle.radius=3;oCircle.getArea=function(){returnthis.radius*this.radius*Math.PI;};document.writeln("設(shè)圓半徑為"+oCircle.radius+",則<br/>");document.writeln("圓面積為"+oCircle.getArea()+"<br/>");
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版高端商務門面租賃合同4篇
- 2025年度智能家庭“魔百和”套餐開通及服務協(xié)議3篇
- 2024年小學消防安全責任制度
- 遺傳算法的課程設(shè)計論文
- 運輸行政管理課程設(shè)計
- 二零二五年綠色環(huán)保刮瓷施工技術(shù)合作協(xié)議2篇
- 2025年度高端消防工程設(shè)計合同范本3篇
- 2025年度個人貸款合同補充協(xié)議(抵押物變更)4篇
- 《中醫(yī)養(yǎng)生學輔助》課件
- 2025年度商業(yè)樓宇窗簾設(shè)計安裝一體化合同范本4篇
- 2025年浙江省湖州市湖州職業(yè)技術(shù)學院招聘5人歷年高頻重點提升(共500題)附帶答案詳解
- ZK24600型平旋盤使用說明書(環(huán)球)
- 城市基礎(chǔ)設(shè)施維修計劃
- 2024山西廣播電視臺招聘專業(yè)技術(shù)崗位編制人員20人歷年高頻500題難、易錯點模擬試題附帶答案詳解
- 新材料行業(yè)系列深度報告一:新材料行業(yè)研究框架
- 人教版小學英語各冊單詞表(帶英標)
- 廣東省潮州市潮安區(qū)2023-2024學年六年級上學期期末考試數(shù)學試題
- 鄉(xiāng)村治理中正式制度與非正式制度的關(guān)系解析
- 智能護理:人工智能助力的醫(yī)療創(chuàng)新
- 國家中小學智慧教育平臺培訓專題講座
- 5G+教育5G技術(shù)在智慧校園教育專網(wǎng)系統(tǒng)的應用
評論
0/150
提交評論