




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第6章 對象編程,【學習目標】,JavaScript是一種基于對象(Object)的語言,它支持三種對象:內(nèi)置對象、用戶自定義對象以及瀏覽器對象。本章主要介紹常用的內(nèi)置對象,通過本章的學習,讀者可以達到以下學習目的: 了解什么是對象,對象的創(chuàng)建、刪除及使用 掌握日期對象 掌握數(shù)學對象 掌握字符串對象 掌握Number對象 掌握Array對象,【學習導航】,本章首先結合簡單的舉例讓讀者了解什么是對象,對象的創(chuàng)建、刪除及使用,接下來重點介紹日期對象、數(shù)學對象、字符串對象、Number對象和Array對象。本章在書中的學習位置如圖6.1所示。,【知識框架】,本章學習內(nèi)容知識框架如圖6.2所示。,本章
2、目錄,6.1 什么是對象 6.2 對象概述 6.3 在JavaScript中使用對象 6.4 日期對象(Date對象) 6.5 數(shù)學對象(Math對象) 6.6 字符串對象(String對象) 6.7 Number對象 6.8 Array對象,6.1 對象概述,什么是對象 創(chuàng)建和刪除對象 對象的屬性和方法,什么是對象,對象的概念首先來自于客觀世界的認識,對象用于描述客觀世界存在的特定實體。例如,“人”就是一個典型的對象,“人”包括身高、體重、年齡等特性,同時又包含吃飯、睡覺、行走等一些動作。 在計算機世界中,不僅存在來自于客觀世界的對象,也包含為解決問題而引入的抽象對象。例如,一個用戶可被看作
3、一個對象,它包含用戶名、用戶密碼等特性,也包含注冊、注銷等動作。一個Web頁可以被看作一個對象,它包含背景色、段落文本、標題等特性,同時又包含打開、關閉和寫入等動作。 綜上所述,對象就是一組包含數(shù)據(jù)的屬性和對屬性中包含數(shù)據(jù)進行操作的方法的實體。 例6.1 在網(wǎng)頁是輸出字符串,所針對的對象就是document,所用的屬性是write,代碼如下。 Document.write(我喜歡學JavaScript); 上述代碼將在網(wǎng)頁上輸出字符串“我喜歡學JavaScript”。,6.2 在JavaScript中使用對象,在JavaScript中,可以使用三種對象,即內(nèi)置對象、自定義對象和瀏覽器對象。內(nèi)置
4、對象和瀏覽器對象統(tǒng)稱為預定義對象。 JavaScript將一些常用功能預先定義成對象,用戶可以直接使用,這種對象就是內(nèi)置對象。這些內(nèi)置對象可以幫助用戶在設計自己的腳本時實現(xiàn)一些最常最基本的功能。這些對象是Date、Math、String、Array、Number、Boolean、Function、Global、Object、RegExp和Even對象。 瀏覽器對象(DOM)對象是瀏覽器根據(jù)系統(tǒng)當前的配置和所裝載的頁面為JavaScript提供的一些可供使用的對象。 瀏覽器對象 HTML 元素 自定義對象就是指自己根據(jù)需要而定義的新對象。,對象的屬性和方法,一個對象應包含兩個要素,即屬性和方法。
5、屬性是用來描述對象特性的一組數(shù)據(jù),即若干變量;方法是用來操作對象的若干動作,也就是若干函數(shù)。 在JavaScript中,對象就是屬性和方法的集合。方法是作為對象成員的函數(shù),表明對象所具有的行為,而屬性是作為對象成員的變量,表明對象狀態(tài)。 通過訪問或設置對象的屬性,并且調(diào)用對象的方法,就可以對對象進行各種操作,從而獲得需要的功能。下面分別介紹對象的屬性和方法。,對象的屬性: 使用下述幾種方法可以得到對象的屬性值。 (1)通過圓點(.)運算符。語法: 對象名.屬性名 (2)通過屬性名。語法: 對象名屬性名 (3)通過循環(huán)語句。語法: for(var 變量 in 對象變量) 對象變量變量 (4)通過
6、With語句。語法: with(對象變量) 直接使用對象屬性名、方法名 對象的方法: 使用With語句或通過圓點(.)運算符就可以得到對象的方法。 對象變量.對象方法名(),對象屬性的訪問,對象屬性引用有3種方式。例如,一個叫做Person的對象實例,它包含了sex、name、age三個屬性。 句點(.)運算符 Person.sex=male; P=“小強”; Person.age=20; 對象的數(shù)組下標:對象下標 Person0=male; Person1=“小強”; Person2=20; 通過字符串的形式實現(xiàn) Person“sex”=“male”; Person“na
7、me”=“小強”; Person“age”=20;,對象方法的訪問,對象名.方法() 如document.write(Person.howold();,創(chuàng)建和刪除對象,使用對象前,首先要學會創(chuàng)建對象。在JavaScript中,除了Math等個別對象,其他對象都使用new運算符來創(chuàng)建,該運算符是一個常用且十分重要的運算符。刪除一個對象可以使用對象運算符delete,但在JavaScript中很少使用它。 使用new運算符創(chuàng)建對象變量的格式如下: 變量名=new 對象名(); 例6.2 在頁面中顯示當前時間,效果如圖6.3所示。 程序代碼如下: 無標題文檔 var mydate; mydate=n
8、ew Date(); document.write(現(xiàn)在是:+mydate.getHours()+時+mydate.getMinutes()+分+mydate.getSeconds()+秒); 上述代碼中,使用JavaScript運算符new創(chuàng)建一個Date對象,然后將這個對象賦值給變量mydate,最后使用該對象的屬性來獲取當前系統(tǒng)時間。,new語句,new操作符用于新建對象。格式如下: 對象實例名=new 對象名(參數(shù)表) 注意:this用來指定當前對象的實例 例, function employee(name, code, designation) = name th
9、is.code = code this.designation = designation newemp = new employee(John Dias, A001, 職員); document.write(雇員姓名: + + ); document.write(雇員代號: + newemp.code + ); document.write(頭銜: + newemp.designation); ,delete 語句,delete操作符可以刪除一個對象的實例。 格式如下: delete 對象名;,常用語言對象,JavaScript為我們提供了一些非常有用的常用內(nèi)置對象和
10、方法。 Javascript中的內(nèi)置對象按使用方式分為動態(tài)對象和靜態(tài)對象。 動態(tài)對象:須用new操作符創(chuàng)建對象實例,使用“對象實例名.方法或屬性”。Date、String 靜態(tài)對象:不需要new操作符創(chuàng)建對象實例,使用“對象名.方法或屬性”。Math,JavaScript中常用對象,JavaScript中提供了字符串(string)、數(shù)值計算(Math)、日期(Date)、數(shù)組(Array)對象;還有表示HTML文件的document對象、網(wǎng)址信息管理的navigator對象、網(wǎng)頁漫游管理的history對象;網(wǎng)頁位置管理的location對象、鏈接管理的links對象、表單管理的forms和
11、elements對象、窗口管理的frame對象和window對象。,6.3 日期對象(Date對象),創(chuàng)建Date對象 Date對象的主要屬性和方法,在Web開發(fā)過程中,可以使用JavaScript的Date對象(日期對象)來實現(xiàn)對日期和時間的控制。如果想在網(wǎng)頁中顯示計時時鐘,就得重復生成新的Date對象來獲取當前計算機的時間。用戶可以使用Date對象執(zhí)行各種使用日期和時間的過程。,Date對象,Date是內(nèi)置對象,包含日期和時間信息。 靜動性:動態(tài)性,即必須使用New運算符創(chuàng)建一個實例。 Date對象沒有提供直接訪問的屬性。只有獲取(get)和設置(set)日期和時間的方法。 日期起始值:1
12、970年1月1日00:00:00,創(chuàng)建Date對象,日期對象是對一個對象數(shù)據(jù)類型求值,該對象主要負責處理與日期和時間有關的數(shù)據(jù)信息。在使用Date對象前,首先要創(chuàng)建該對象,其創(chuàng)建格式如下: dateObj = new Date() dateObj = new Date(dateVal) dateObj = new Date(year, month, date, hours, minutes, seconds,ms) Date對象語法中各參數(shù)的說明如表6.1所示。,創(chuàng)建Date對象,下面以示例的形式來介紹如何創(chuàng)建日期對象。 例如,返回當前的日期和時間。 var newDate=new Date(
13、); document.write(newDate); 運行結果:Tue Feb 3 08:49:30 UTC+0800 2009。 例如,用年、月、日(2009-2-3)來創(chuàng)建日期對象。代碼如下: var newDate=new Date(2009,2,3); document.write(newDate); 運行結果:Tue Mar 3 00:00:00 UTC+0800 2009。 例如,用年、月、日、小時、分鐘、秒(2009-2-3 8:59:50)來創(chuàng)建日期對象。代碼如下: var newDate=new Date(2009,2,3,8,59,50); document.write(
14、newDate); 運行結果:Tue Mar 3 08:59:50 UTC+0800 2009。 例如,以字符串形式創(chuàng)建日期對象(2009-2-3 9:01:40)。代碼如下: var newDate=new Date(Feb 3,2009 9:01:40); document.write(newDate); 運行結果: Tue Feb 3 09:01:40 UTC+0800 2009。,Data用法,用法: DateObject = new Date (parameters) (1)var 對象名=new Date(); (2)var 對象名=new Date(年,月,日); (3)var
15、對象名=new Date(年,月,日,時,分,秒,毫秒); (4)var 對象名=new Date(字符串); var d1=new Date(); d2=new Date(2003,6,30); d3=new Date(2003,6,30,8,0,0); d4=new Date(June 20,2003 08:00:00);,Date對象的主要屬性和方法,1Date對象的主要屬性 Date對象的屬性有constructor和prototype,下面介紹這兩個屬性的用法。 (1)constructor屬性 例如,判斷當前對象是否為日期對象。代碼如下: var newDate=new Date(
16、); if (newDate.constructor=Date) document.write(日期型對象); 運行結果:日期型對象。 (2)prototype屬性 例如,用自定義屬性來記錄當前日期是本周的周幾。代碼如下: var newDate=new Date();/當前日期為2009-2-3 Dtotype.mark=null;/向對象中添加屬性 newDate.mard=newDate.getDay();/從Date對象返回一周中的某一天(06) alert(newDate.mard); 運行結果:2。,Date對象的主要屬性和方法,2Date對象的主要方法 Date對象
17、是JavaScript的一種內(nèi)部數(shù)據(jù)類型。該對象沒有可以直接讀寫的屬性,所有對日期和時間的操作都是通過方法完成的。Date對象的主要方法如表6.2所示。,Date對象的主要屬性和方法,續(xù)表,Date對象的主要屬性和方法,續(xù)表,Date對象的主要屬性和方法,例6.3 下面應用getFullYear()、getYear()、getMonth()、getDate()、getHours()、getMinutes()、getSeconds()和setMilliseconds()方法將獲取當前系統(tǒng)日期和時間,然后按指定的格式顯示出來,程序代碼如下。 Date對象的應用 ); document.write(
18、當前時間為:+hours+時+minutes+分+seconds+秒+milliseconds+毫秒); /- 在瀏覽器中預覽,效果如圖6.4所示。,Date對象的方法,獲取日期的時間方法 getYear(): 返回年份 getMonth():返回當月號數(shù) getDate(): 返回當日號數(shù) getDay():返回星期幾 getHours():返回小時數(shù) getMinutes():返回分鐘數(shù) getSeconds():返回秒數(shù) getTime():返回完整的時間,Date對象的方法,設置日期和時間的方法 setYear();設置年份 setDate():設置當日號數(shù) setMonth():設置
19、月份數(shù) setHours():設置小時數(shù) setMinutes():設置分鐘數(shù) setSeconds():設置秒數(shù) setTime ():設置完整的時間,Date對象的方法,格式轉換的方法 toGSMString():轉換成格林威治標準時間表達的字符串; toLocaleString():轉換成以當?shù)貢r間表達的字符串; toString():把時間信信息轉換為字符串; parse:從表示時間的字符串中讀出時間; UTC:返回從格林威治標準時間到指定時間的差距(單位為毫秒)。,Date對象,Date對象示例1, ,改為今天的月份是?,Date對象示例2, 2007年的圣誕節(jié)是星期 + dayna
20、methedate.getDay(); thedate.setYear(2008); document.write(2008年的圣誕節(jié)是星期 + daynamethedate.getDay(); /- ,Date對象示例3,var x01=new Date(); x02=x01.getYear(); document.write(x01.getYear()= +x02+年) document.write(x01.getMonth()= +(x01.getMonth()+1)+月) document.write(x01.getDate()= +x01.getDate()+日) document.
21、write(x01.getDay()= +星期+x01.getDay()+) document.write(x01.getHours()= +x01.getHours()+時) document.write(x01.getMinutes()= +x01.getMinutes()+分) document.write(x01.getSeconds()= +x01.getSeconds()+秒) document.write(x01.getTime()= +x01.getTime()+千分秒),思考題,在網(wǎng)頁中顯示“2008年10月3日 星期五”的日期格式。 在網(wǎng)頁中動態(tài)顯示當前時間。 docume
22、nt.all.digit_clock.innerHTML= hours+“:”+minutes+“:”+seconds+“ ”+mark;() digit_clock.value = hours+:+minutes+:+seconds+ +mark;() setTimeout(“display()”,100);/設置定時器 顯示2188年的國慶節(jié)是星期幾?,簡單的報時器(Data), 報時器 單擊報時按鈕可獲得當前時間 , 日期星期的顯示 ) if(navigator.appName = Netscape) document.write(1900+year); document.write(年
23、); document.write(month); document.write(月); document.write(date); document.write(日); document.write(),if(navigator.appVersion.indexOf(MSIE) != -1) document.write(year); document.write(年); document.write(month); document.write(月); document.write(date); document.write(日); document.write() if (todayDa
24、te.getDay() = 5) document.write(星期五) if (todayDate.getDay() = 6) document.write(星期六) if (todayDate.getDay() = 0) document.write(星期日) if (todayDate.getDay() = 1) document.write(星期一) if (todayDate.getDay() = 2) document.write(星期二) if (todayDate.getDay() = 3) document.write(星期三) if (todayDate.getDay()
25、= 4) document.write(星期四) ,思考題1,啟動數(shù)字鐘 啟動數(shù)字鐘統(tǒng)計頁面持續(xù)時間 +TimeString3 setTimeout (Eclock(),1000) -, 單擊此處啟動數(shù)字鐘并統(tǒng)計網(wǎng)頁持續(xù)時間 ,思考題2,6.4 數(shù)學對象(Math對象),在JavaScript中,Math對象提供算數(shù)運算符所需要的多種算數(shù)值類型和函數(shù)。該對象的所有屬性和方法都是靜態(tài)的,使用該對象時,不需要對其進行創(chuàng)建。 1Math對象的屬性 Math對象的屬性如表6.3所示。,6.4 數(shù)學對象(Math對象),2Math對象的方法 Math對象的方法如表6.4所示。,Math對象,Math 對
26、象擁有可用于表示復雜數(shù)學運算的屬性和方法(加、減、乘、除之外的),靜態(tài)對象 數(shù)學對象的調(diào)用方式為: Math.數(shù)學函數(shù)名(參數(shù)表) 屬性 E 歐拉常量,自然對數(shù)的底(約等于2.7182) LN2,2的自然對數(shù)(約等于0.69315) LN10,10的自然對數(shù)(約等于2.302) LOG2E, 以2為底的e的對數(shù)(約等于1.442) LOG10E, 以10為底的e的對數(shù)(約等于o.434) PI ,的值(約等于3.14159) SQRT1_2, 0.5的平方根(即l除以2的平方根,約等于o.707) SQRT2, 2的平方根(約等于1.414),Math方法,方法 abs(a) 返回a的絕對值
27、acos(a) 返回a的反余弦值(以弧度為單位) asin(a) 返回a的反正弦值(以弧度為單位) atan(a) 返回a的反正切值(以弧度為單位) cos(a) 返回a(以弧度為單位)的余弦值 exp(a) 返回a的指數(shù) ceil(a) 返回與a相等,或大于a的最小整數(shù) floor(a)返回與a相等,或小于a的最大整數(shù) log(a) 返回a的自然對數(shù)(以e為底) max(a,b) 返回兩數(shù)間的較大值 min(a,b) 返回兩數(shù)問的較小值 Pow(m,n) 返回m的n次方(其中,m為底,n為指數(shù)),Math方法,random() 返回0和1之間的一個偽隨機數(shù)(該方法僅在NetscapeNavi
28、gator的UNIX版本中有效) round(a) 返回某數(shù)四舍五入之后的整數(shù) sin(a) 返回某數(shù)(以弧度為單位)的正弦值 sqrt(a) 返回某數(shù)的平方根 tan(a) 返回某數(shù)的正切值,Math對象示例1, function doCalc(x) var a; a = Math.PI * x * x; alert (半徑為 + x + + 的圓的面積為 + + a); 輸入圓的半徑: ,Math對象示例2, /產(chǎn)生16的隨機數(shù) var rand1=Math.floor(Math.random()*6)+1; var rand2=Math.ceil(Math.random()*6); do
29、cument.write(rand1:+rand1+,rand2:+rand2); ,Math對象示例,模擬抽獎 每10毫秒產(chǎn)生6個各不相同的隨機數(shù) 賦值給數(shù)組 3秒后停止,6.5 字符串對象(String對象),創(chuàng)建String對象 String對象的屬性和方法,String對象是動態(tài)對象,需要創(chuàng)建對象實例后才能引用該對象的屬性和方法,該對象主要用于處理或格式化文本字符串以及確定和定位字符串中的子字符串。,創(chuàng)建String對象,String對象用于操縱和處理文本串,可以通過該對象在程序中獲取字符串長度、提取子字符串,以及將字符串轉換為大寫或小寫字符。 var newstr=new Strin
30、g(StringText) newstr:創(chuàng)建的String對象名。 StringText:可選項。字符串文本。 例如,創(chuàng)建一個String對象。 var newstr=new String(“歡迎使用JavaScript腳本”) 事實上任何一個字符串常量(用單引號或雙引號括起來的字符串)都是一個String對象,可以將其直接作為對象來使用,只要在字符變量的后面加“.”,便可以直接調(diào)用String對象的屬性和方法。字符串與String對象的不同在于返回的typeof值,前者返回的是stirng類型,后者返回的是object類型。,String對象的屬性和方法,1String對象的屬性 在Str
31、ing對象中有3個屬性,分別是length、constructor和prototype。下面對這幾個屬性進行詳細介紹。 (1)length屬性 該屬性用于獲得當前字符串的長度。 stringObject.length stringObject:當前獲取長度的String對象名,也可以是字符變量名。 例6.4 獲取已創(chuàng)建的字符串對象“study”的長度。代碼如下: var p=0; var newString=new String(study);/實例化一個字符串對象 var p=newString.length;/獲取字符串對象的長度 alert(p.toString(16);/用提示框顯示長
32、度值 運行結果:5。 例6.5 獲取自定義的字符變量“study”的長度。代碼如下: var p=0; var newStr=study;/定義一個字符串變量 var p=newStr.length;/獲取字符變量的長度 alert(p.toString(16);/用提示框顯示字符串變量的長度值 運行結果:5。,String對象的屬性和方法,(2)constructor屬性 該屬性用于對當前對象的函數(shù)的引用。 Object.constructor Object:String對象名或字符變量名。 例6.6 使用constructor屬性判斷當前對象或自定義變量的類型。代碼如下: var newN
33、ame=new String(javascript);/實例化一個字符串對象 if (newName.constructor=String)/判斷當前對象是否為字符型 alert(this is String);/如果是,顯示提示框 運行結果:this is String。 例6.7 應用constructor屬性獲取當前對象fred所引用的函數(shù)代碼。 function chronicle(name,year)/自定義函數(shù) =name;/給當前函數(shù)的name屬性傳值 this.year=year;/給當前函數(shù)的year屬性傳值 var fred=new chronicle(Y
34、ear,2009);/實例化chronicle函數(shù)的對象 alert(fred.constructor);/顯示對象中的函數(shù)代碼 運行結果: function chronicle(name,year)/自定義函數(shù) =name;/給當前函數(shù)的name屬性傳值 this.year=year;/給當前函數(shù)的year屬性傳值 ,String對象的屬性和方法,(3)prototype屬性 該屬性可以為對象添加屬性和方法。 =value object:對象名或字符變量名。 name:要添加的屬性名。 value:添加屬性的值。 例6.8 為inf
35、ormation對象添加一個自定義屬性salary,并給該屬性賦值(1700)。代碼如下: function personnel(name,age)/自定義函數(shù) =name; /給當前函數(shù)的name屬性傳值 this.age=age;/給當前函數(shù)的age屬性傳值 var information=new personnel(張博雯,28);/實例化personnel函數(shù)對象 totype.salary=null;/向對象中添加屬性 information.salary=2300; /向添加的屬性中賦值 alert(information.salary)
36、; /在提示框中顯示添加的屬性值 運行結果:2300。,String對象的屬性和方法,2String對象的方法 String對象的方法如表6.5所示。,String對象的屬性和方法,續(xù)表,String對象的屬性和方法,續(xù)表,字符串對象的定義,String對象:內(nèi)部靜態(tài)性 字符串對象用于操縱和處理文本字符串。 該對象只有一個屬性,即length 獲得字符串的長度 訪問properties和methods時,可使用(.)運算符實現(xiàn) 用法 stringNpertyNamestringName.methodName,字符串對象的屬性和方法,屬性(1個) length 方法(19個) 錨點
37、anchor():該方法創(chuàng)建如用Html文檔中一樣的anchor標記。使用anchor如用Html中(A Name=“”)一樣。通過下列格式訪問string.anchor(anchorName); link():用于創(chuàng)建一個超鏈接。,字符串對象的方法,方法(19個) 有關字符顯示的控制方法:big()大字體, italics()斜體字,bold()粗體字,blink()字符閃爍,small()小體字,fixed()固定高亮字、fontsize(size)控制字體大小等。 字體顏色方法;fontcolor(color) 字符串大小寫轉換:toLowerCase()小寫轉換,toUpperCase
38、()大寫轉換。 字符搜索:indexOfcharactor,fromIndex。從指定位置開始搜索charactor第一次出現(xiàn)的位置。 返回字串的一部分字串:substring(start,end)。從start開始到end的字符全部返回。,字符串對象示例1, var bstr = new String(大號); var sstr = 小號; var blstr = 粗體; var blkstr = 閃爍; var ucase = abc; var lcase = ABC; document.write (這是+ bstr.big() + 文本); document.write (這是+ ss
39、tr.small() +文本); document.write (這是+ blstr.bold() + 文本); document.write (這是+ blkstr.blink() + 文本); document.write (這是+ ucase.toUpperCase() + 文本); document.write (這是+ lcase.toLowerCase() + 文本); ,字符串對象示例2, var str = new String(中國人民); document.write(anchor:+str.anchor(a)+); document.write(charAt:+str.c
40、harAt(2)+); document.write(charCodeAt:+str.charCodeAt(2)+); document.write(fontcolor:+str.fontcolor(red)+); document.write(indexOf:+str.indexOf(國)+); document.write(indexOf:+str.lastIndexOf(國)+); ,字符串對象示例3,客戶端驗證Email的格式: 界面設計 定義函數(shù) 調(diào)用函數(shù), function vatemail() var email=document.form1.email.value if (em
41、ail.length5 var numObj2=new Number(0); var numObj3=new Number(-1); document.write(numObj1+); document.write(numObj2+); document.write(numObj3+); 運行結果: 0 0 -1,Number對象的屬性,Number對象的屬性如表6.6所示。,Number對象的屬性是該對象本身,并不是Number對象的實例,在使用其屬性時,必須用Number對象直接引用。正確代碼如下: var maxvalue=Number.MIN_VALUE; 下面是使用Number對象屬
42、性的錯誤用法。代碼如下: var numObj=new Number(); var maxvalue= numObj.MIN_VALUE;,Number對象的方法,Number對象的方法如表6.7所示。,Number對象的最大值或最小可能值,Number對象的可能的最大值或最小值可以通過MAX_VALUE和MIN_VALUE屬性來獲取。 (1)MAX_VALUE屬性 該屬性用于返回Number對象的最大可能值。 value=Number.MAX_VALUE value:存儲Number對象的最大可能值的變量。 例6.10 獲取Number對象的最大可能值。代碼如下: var maxvalue=
43、Number.MAX_VALUE; document.write(maxvalue); 運行結果:1.7976931348623157e+308。 (2)MIN_VALUE屬性 該屬性用于返回Number對象的最小可能值。 value=Number.MIN_VALUE value:存儲Number對象的最小可能值的變量。 例6.11 獲取Number對象的最小可能值。代碼如下: var maxvalue=Number.MIN_VALUE; document.write(maxvalue); 運行結果:5e-324。,Number對象的正負無窮大的值,Number對象的正負無窮大值可以通過NEG
44、TIVE_INFINITY和POSITIVE_INFINITY屬性來獲取。 (1)NEGTIVE_INFINITY屬性 該屬性用于返回Number對象的負無窮大的值。 value=Number.NEGTIVE_INFINITY value:存儲Number對象負無窮大的值。 例6.12 獲取Number對象的負無窮大的值。代碼如下: var negative=Number.NEGATIVE_INFINITY; document.write(negative); 運行結果:-Infinity。 (2)POSITIVE_INFINITY屬性 該屬性用于返回Number對象的正無窮大的值。 valu
45、e=Number.POSITIVE_INFINITY value:存儲Number對象正無窮大的值。 例6.13 獲取Number對象的正無窮大的值。代碼如下: var positive=Number.POSITIVE_INFINITY; document.write(positive); 運行結果:Infinity。,將數(shù)字以不同的格式轉換成字符串,將數(shù)字轉換成字符串可以通過toString()、toLocaleString()、toFixed()、toExponential()和toPrecision()方法實現(xiàn)。 (1)toString()方法 該方法可以把Number對象轉換成一個字符
46、串,并返回結果。 NumberObject.toString(radix) Radix:可選項。規(guī)定表示數(shù)字的基數(shù),使用236之間的整數(shù)。若省略該參數(shù),則使用基數(shù)為 10。但要注意,如果該參數(shù)是 10 以外的其他值,則ECMAScript標準允許實現(xiàn)返回任意值。 返回值:數(shù)字的字符串表示。 例6.14 將數(shù)字轉換成字符串。代碼如下: var num=new Number(10); document.write(num.toString()+);/將數(shù)字以十進制形式轉換成字符串 document.write(num.toString(10)+);/將數(shù)字以十進制形式轉換成字符串 document
47、.write(num.toString(2)+);/將數(shù)字以二進制形式轉換成字符串 document.write(num.toString(8)+);/將數(shù)字以八進制形式轉換成字符串 document.write(num.toString(16);/將數(shù)字以十六進制形式轉換成字符串 運行結果: 10 10 1010 12 a,將數(shù)字以不同的格式轉換成字符串,(2)toLocaleString()方法 該方法可以把Number對象轉換為本地格式的字符串。 NumberObject.toLocaleString() 返回值:數(shù)字的字符串表示,根據(jù)本地的規(guī)范進行格式化,可能影響到小數(shù)點或千分位分隔符
48、采用的標點符號。 例6.15 將數(shù)字轉換成字符串。代碼如下: var num=new Number(10); document.write(num.toLocaleString()+); 運行結果:10.00。 (3)toFixed()方法 該方法將Number對象四舍五入為指定小數(shù)位數(shù)的數(shù)字,然后轉換成字符串。 NumberObject.toFixed(num) Num:必需。規(guī)定小數(shù)的位數(shù),是020之間的值(包括0和20),有些實現(xiàn)可以支持更大的數(shù)值范圍。如果省略該參數(shù),用 0 代替。 返回值:數(shù)字的字符串表示,不采用指數(shù)計數(shù)法,小數(shù)點后有固定的num位數(shù)字。如果num參數(shù)為空,默認值為0
49、。如果num大于le+21,則該方法只調(diào)用NumberObject.toString(),返回采用指數(shù)計數(shù)法表示的字符串。,將數(shù)字以不同的格式轉換成字符串,例6.16 將數(shù)字的小數(shù)部份以指定位數(shù)進行四舍五入后轉換成字符串。代碼如下: var num=new Number(10.25416); document.write(num.toFixed()+); document.write(num.toFixed(0)+); document.write(num.toFixed(1)+); document.write(num.toFixed(3)+); document.write(num.toF
50、ixed(7)+); 運行結果: 10 10 10.3 10.254 10.2541600,將數(shù)字以不同的格式轉換成字符串,(4)toExponential()方法 該方法利用指數(shù)計數(shù)法計算Number對象的值,然后將其轉換成字符串。 NumberObject.toExponential(num) Num:必選項。規(guī)定指數(shù)計數(shù)法中的小數(shù)位數(shù),是020之間的值(包括0和20),有些實現(xiàn)可以支持更大的數(shù)值范圍。如果省略該參數(shù),將使用盡可能多的數(shù)字。 返回值:數(shù)字的字符串表示,采用指數(shù)計數(shù)法,即小數(shù)點之前有一位數(shù)字,小數(shù)點之后有num位數(shù)字,該數(shù)字的小數(shù)部分將被舍入,必要時用0補足,以便它達到指定的
51、長度。 例6.17 將數(shù)字以指數(shù)計數(shù)法計算后轉換成字符串。代碼如下: var num=new Number(2000000.45); document.write(num.toExponential()+); document.write(num.toExponential(0)+); document.write(num.toExponential(1)+); document.write(num.toExponential(3)+); document.write(num.toExponential(7)+); 運行結果: 2.00000045e+6 2e+6 2.0e+6 2.000e+
52、6 2.0000005e+6,將數(shù)字以不同的格式轉換成字符串,(5)toPrecision()方法 該方法將Number對象轉換成字符串,并根據(jù)不同的情況選擇定點計數(shù)法或指數(shù)計數(shù)法。 NumberObject.toPrecision (num) Num:必選項。規(guī)定指數(shù)計數(shù)法中的小數(shù)位數(shù),是020之間的值(包括0和20),有些實現(xiàn)可以支持更大的數(shù)值范圍。如果省略該參數(shù),將使用盡可能多的數(shù)字。 返回值:數(shù)字的字符串表示,包含num個有效數(shù)字。如果num足夠大,能夠包括整數(shù)部分的所有數(shù)字,那么返回的字符串將采用定點計數(shù)法。否則,采用指數(shù)計數(shù)法,即小數(shù)點前有一位數(shù)字,小數(shù)點后有num-1位數(shù)字。必要
53、時,該數(shù)字會被舍入或用0補足。 例6.18 根據(jù)不同的情況,使用定點計數(shù)法或指數(shù)計數(shù)法將數(shù)字轉換成字符串。代碼如下: var num = new Number(10000); document.write (num.toPrecision(4)+);/返回的字符串采用定點計數(shù)法 document.write (num.toPrecision(10);/返回的字符串采用指數(shù)計數(shù)法 運行結果: 000e+4 10000.00000,6.7 Array對象,什么是數(shù)組 創(chuàng)建和訪問數(shù)組 Array對象的輸入輸出 Array對象的常用屬性和方法 二維數(shù)組,什么是數(shù)組,可以把數(shù)組看作一個單行表格,該表格的
54、每一個單元格中都可以存儲一個數(shù)據(jù),而且各單元格中存儲的數(shù)據(jù)類型可以不同,這些單元格被稱為數(shù)組元素。每個數(shù)組元素都有一個索引號,通過索引號可以方便地引用數(shù)組元素。數(shù)組是JavaScript中唯一用來存儲和操作有序數(shù)據(jù)集的數(shù)據(jù)結構。,數(shù)組,數(shù)組是有限的一組數(shù)據(jù)項。可以存儲具有相同或不同數(shù)據(jù)類型的一組值,使用下標(索引)來區(qū)分各個值。 在JavaScript中,數(shù)組的下標以零開始。 JavaScript沒有明確的數(shù)組數(shù)據(jù)類型,但卻有內(nèi)置的數(shù)組對象。要在程序中使用數(shù)組,必須使用數(shù)組對象Array及其相關聯(lián)的方法。,創(chuàng)建和訪問數(shù)組,可以用靜態(tài)的Array對象創(chuàng)建一個數(shù)組對象,以記錄不同類型的數(shù)據(jù)。 ar
55、rayObj = new Array() arrayObj = new Array(size) arrayObj = new Array(element0, element1, ., elementN) arrayObj:必選項。要賦值為Array對象的變量名。 size:可選項。設置數(shù)組的大小。由于數(shù)組的下標是從零開始,創(chuàng)建元素的下標將從0到size-1。 elementN:可選項。存入數(shù)組中的元素。使用該語法時必須有一個以上元素。 例6.19 創(chuàng)建一個可存入3個元素的Array對象,并向該對象中存入數(shù)據(jù)。代碼如下: arrayObj = new Array(3) arrayObj0= a;
56、 arrayObj1= b; arrayObj2= c; 創(chuàng)建Array對象的同時,向該對象中存入數(shù)組元素。代碼如下: arrayObj = new Array(1,2,3,a,b),創(chuàng)建數(shù)組,語法: arrayObjectName = new Array(element0, element1, ., elementN) 初始化 1.將指定的值作為其元素 2.使用arrayName = new Array(N) 3.簡略的語法聲明數(shù)組賦值 Scores=12,34,”hi”,true,對象名,元素值列表,數(shù)組賦值,在創(chuàng)建數(shù)組時將元素的值直接賦給數(shù)組。 對數(shù)組的元素賦值。, ,訪問數(shù)組元素,指定
57、元素的索引號,empi emp0,Array對象的輸入輸出,1Array對象的輸入 向Array對象中輸入數(shù)組元素有3種方法。 (1)在定義Array對象時直接輸入數(shù)據(jù)元素。 這種方法只能在數(shù)組元素確定的情況下才可以使用。 例如,在創(chuàng)建Array對象的同時存入字符串數(shù)組。代碼如下: arrayObj = new Array(a,b,c,d) (2)利用Array對象的元素下標向其輸入數(shù)據(jù)元素。 該方法可以隨意的向Array對象中的各元素賦值,或是修改數(shù)組中的任意元素值。 例6.20 在創(chuàng)建一個長度為7的Array對象后,向下標為3和4的元素賦值。 arrayObj = new Array(7)
58、 arrayObj3 = a; arrayObj4 = b; (3)利用for語句向Array對象中輸入數(shù)據(jù)元素。 該方法主要用于批量向Array對象中輸入數(shù)組元素,一般用于向Array對象中賦初值。 例6.21 使用者可以通過改變變量n的值(必須是數(shù)值型),給數(shù)組對象arrayObj賦指定個數(shù)的數(shù)值元素。代碼如下: Var n=7 arrayObj = new Array() for (var i=0;in;i+) arrayObji=i 例6.22 給指定元素個數(shù)的Array對象賦值。代碼如下: arrayObj = new Array(7) for (var i=0;iarrayObj.
59、length;i+) arrayObji=i ,Array對象的輸入輸出,2Array對象的輸出 將Array對象中的元素值進行輸出有3種方法。 (1)用下標獲取指定元素值。 該方法通過Array對象的下標,獲取指定的元素值。 例6.23 獲取Array對象中的第3個元素的值。代碼如下: arrayObj = new Array(a,b,c,d) var s=arrayObj2 Array對象的元素下標是從0開始的。 (2)用for語句獲取數(shù)組中的元素值。 該方法是利用for語句獲取Array對象中的所有元素值。 例6.24 獲取Array對象中的所有元素值。代碼如下: arrayObj = new Ar
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 塔吊安裝專項施工方案
- 漢口閣樓安裝施工方案
- 鍋爐除渣干式排渣施工方案
- 年產(chǎn)12000噸聚羧酸高性能減水劑復配液及3000噸水泥助磨劑復配液項目環(huán)評報告表
- 雄安擠塑型聚苯板施工方案
- 海南廣建混凝土外加劑復配項目環(huán)評報告表
- 2025北京通州七年級(上)期末生物(教師版)
- 鐵路安裝鐵藝工程施工方案
- 籃球場面層地坪漆施工方案
- 2025年中國節(jié)能減排LED路燈行業(yè)現(xiàn)狀、發(fā)展環(huán)境及投資前景分析報告
- 環(huán)衛(wèi)車輛投標方案(技術方案)
- 高速公路建設承攬合同
- 20以內(nèi)破十法練習題-A4打印版
- 工程指令單完整版本
- 物業(yè)公司人員培訓及考核方案
- 數(shù)據(jù)中心容災備份解決方案
- 七年級下冊第三單元名著導讀《駱駝祥子》公開課一等獎創(chuàng)新教學設計(公開課公開課一等獎創(chuàng)新教案及作業(yè)設計)
- 幾何圖形中求線段線段和面積等最值問題 中考數(shù)學
- 呼吸道傳染病的護理要點
- 真太陽時調(diào)整
- 景區(qū)開發(fā)合作協(xié)議書范本
評論
0/150
提交評論