版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第5章JavaScript核心對象5.1概述
5.2JavaScript核心對象
5.3String對象
5.4Math對象
5.5Array對象5.6Date對象5.7創(chuàng)建和使用自定義對象
5.1概述
JavaScript提供了豐富的內(nèi)置對象,包括同基本數(shù)據(jù)類型相關(guān)的對象(如String、Boolean、Number)、允許創(chuàng)建用戶自定義和組合類型的對象(如Object、Array)和其他能簡化JavaScript操作的對象(如Math、Date、Function)。本章從實際應(yīng)用出發(fā),詳細討論常用的JavaScript內(nèi)置對象。
5.2JavaScript核心對象
JavaScript作為一門基于對象的編程語言,以其簡單、快捷的對象操作獲得Web應(yīng)用程序開發(fā)者的青睞。其內(nèi)置的幾個核心對象構(gòu)成了JavaScript腳本語言的基礎(chǔ)。主要核心對象如表5-1所示。
表5-1
JavaScript語言中,每種基本類型都構(gòu)成了一個JavaScript核心對象,并由JavaScript提供其屬性和方法,Web應(yīng)用程序開發(fā)者可以通過操作對象的方法來操作該基本類型的
實例。 5.3String對象
String對象是和原始字符串數(shù)據(jù)類型相對應(yīng)的JavaScript腳本內(nèi)置對象,屬于JavaScript核心對象之一,主要提供諸多方法實現(xiàn)字符串檢查、抽取子串、字符串連接、字符串分割等字符串相關(guān)操作。其語法如下:
上述方法使用關(guān)鍵字new返回一個使用可選參數(shù)“string”字符串初始化的String對象的實例MyString,用于后續(xù)的字符串操作。
String對象擁有多個屬性和方法,其常用屬性和方法列表如表5-2所示。表5-25.3.1使用String對象方法操作字符串
使用String對象的方法來操作目標對象時,并不操作對象本身,而只是返回包含操作結(jié)果的字符串。例如要設(shè)置改變某個字符串的值,必須要定義該字符串等于被操作后的結(jié)果??疾烊缦掠嬎阕址L度的程序代碼。程序運行結(jié)果如圖5-1所示。圖5-15.3.2獲取目標字符串長度
字符串的長度length是String對象的唯一屬性,且為只讀屬性,它返回目標字符串(包含字符串里面的空格)所包含的字符數(shù)。我們看下面這段測試代碼:程序運行結(jié)果如圖5-2所示。圖5-25.3.3查找字符串
在String對象中,可以通過indexOf()方法和lastIndexOf()方法查找一個子串在另一個字符串中的位置,返回的是從0開始的下標,如果該子串不存在,則返回-1。這兩個方法的用法類似,不同的是indexOf()方法從前向后查找,查找第一個匹配的子串,而lastIndexOf()則相反,從后向前查找第一個匹配的子串所在下標。下面我們看例子:5.3.4截取字符串
在String對象中使用substring()方法可以進行字符串的截取,其語法如下:上述代碼對字符串str進行截取,從下標為1的字符開始截取,即從字符b開始并且包括字符b,到下標為3的位置結(jié)束,即到字符d結(jié)束并且不包含字符d,所以substring()方法進行字符截取是包括開始位置字符而不包括結(jié)束位置字符,其返回結(jié)果為bc。
5.3.5分隔字符串
String對象提供split()方法來進行字符串的分割操作,split()方法根據(jù)通過參數(shù)傳入的規(guī)則表達式或分隔符來分隔調(diào)用此方法的字符串。split()方法的語法如下:在JavaScript腳本程序編寫過程中,String對象是最為常見的處理目標,用于存儲較短的數(shù)據(jù)。JavaScript語言提供了豐富的屬性和方法支持,方便Web應(yīng)用程序開發(fā)者靈活地操縱String對象的實例。 5.4Math對象
Math對象是JavaScript核心對象之一,擁有一系列的屬性和方法,能夠?qū)崿F(xiàn)比基本算術(shù)運算更為復(fù)雜的運算。?Math對象所有的屬性和方法都是靜態(tài)的,?并不能生成對象的實例,但能直接訪問它的屬性和方法。例如可直接訪問Math對象的PI屬性和abs(num)方法。其語法如下:
需要注意的是,JavaScript腳本中浮點運算精確度不高,常導(dǎo)致計算結(jié)果產(chǎn)生微小誤差從而導(dǎo)致最終結(jié)果的致命錯誤。
表5-3列舉了Math對象中的常用靜態(tài)方法。表5-35.4.1基本數(shù)學(xué)運算
Math對象的很多方法能夠幫助我們完成基本的數(shù)學(xué)運算,我們看下面的例子:5.4.2生成隨機數(shù)
在JavaScript腳本中,可使用Math對象的random()方法生成0到1之間的隨機數(shù),考察下面任意范圍的隨機數(shù)發(fā)生器代碼。圖5-3 5.5Array對象
數(shù)組是包含基本和組合數(shù)據(jù)類型的有序序列,在JavaScript腳本語言中實際指Array對象。數(shù)組可用構(gòu)造函數(shù)Array()產(chǎn)生,主要有以下三種構(gòu)造方法:
第一句聲明一個空數(shù)組并將其存放在以MyArray命名的空間里,可用數(shù)組對象的方法動態(tài)添加數(shù)組元素;第二句聲明了長度為4的空數(shù)組,JavaScript腳本中可支持最大數(shù)組長度為4294967295;第三句聲明一個長度為N的數(shù)組,并用參數(shù)arg1、arg2、...、argN直接初始化數(shù)組元素,該方法在實際應(yīng)用中最為廣泛。表5-45.5.1數(shù)組中元素的順序
Array對象提供相關(guān)方法實現(xiàn)數(shù)組中元素的順序操作,如顛倒元素順序、按Web應(yīng)用程序開發(fā)者制定的規(guī)則進行排列等。這類方法主要有Array對象的reverse()和sort()方法。
reverse()方法將按照數(shù)組的索引號的順序?qū)?shù)組中元素完全顛倒,其語法如下:第一種調(diào)用方式不指定排列順序,JavaScript腳本將數(shù)組元素轉(zhuǎn)化為字符串,然后按照字母順序進行排序。
第二種調(diào)用方式由參數(shù)function指定排序算法,該算法需遵循如下的規(guī)則:
●算法必須接受兩個可以比較的參數(shù)a和b,即function(a,b);
●算法必須返回一個值以表示兩個參數(shù)之間的關(guān)系;
●若參數(shù)a在參數(shù)b之前出現(xiàn),函數(shù)返回小于零的值;
●若參數(shù)a在參數(shù)b之后出現(xiàn),函數(shù)返回大于零的值;
●若參數(shù)a等于b,則返回零。圖5-45.5.2使用splice()方法
Array對象的splice()方法可在數(shù)組任意位置添加、刪除數(shù)組元素。其語法如下:
各參數(shù)說明如下:
●當參數(shù)delete為0時,不執(zhí)行任何刪除操作;
●當參數(shù)delete非0時,?在調(diào)用此方法的數(shù)組中刪除下標從start到start?+?delete的數(shù)組元素,其后的數(shù)組元素的下標均減小delete;
●如果在參數(shù)delete之后還有參數(shù),在執(zhí)行刪除操作之后,這些參數(shù)將作為新元素添加到數(shù)組中由start指定的開始位置,原數(shù)組該位置之后的元素往后順移。圖5-55.5.3Array對象轉(zhuǎn)字符串
在Web應(yīng)用程序開發(fā)過程中,常常需要將數(shù)組元素按某種形式轉(zhuǎn)化為字符串,如需將存放用戶名的數(shù)組中各個元素轉(zhuǎn)換為字符串并賦值給各用戶等。先考察如下代碼:圖5-6
5.6Date對象
5.6.1生成日期對象實例
Date對象的構(gòu)造函數(shù)通過可選的參數(shù),可生成表示過去、現(xiàn)在和將來的Date對象。其構(gòu)造方式有四種,分別如下:第一句生成一個空的Date對象實例MyDate,可在后續(xù)操作中通過Date對象提供的諸多方法來設(shè)定其時間,如果不設(shè)定則代表客戶端當前日期;在第二句的構(gòu)造函數(shù)中傳入唯一參數(shù)milliseconds,表示構(gòu)造與GMT標準零點相距milliseconds毫秒的Date對象實例MyDate;第三句構(gòu)造一個用參數(shù)string指定的Date對象實例MyDate,其中string為表示期望日期的字符串,符合特定的格式;第四句通過具體的日期屬性,如year、month等構(gòu)造指定的Date對象實例MyDate。考察如下的代碼:程序運行結(jié)果如圖5-7所示。圖5-7該程序分為以下幾步:
(1)獲取日期的小時;
(2)獲取日期的分;
(3)獲取日期的秒。
5.6.2獲取和設(shè)置日期各字段
Date對象以目標日期與GMT標準零點之間的毫秒數(shù)來儲存該日期,給腳本程序員操作Date對象帶來一定的難度。為解決這個難題,JavaScript提供了大量的方法而不是通過直接設(shè)置或讀取屬性的方式來設(shè)置和提取日期各字段,這些方法將毫秒數(shù)轉(zhuǎn)化為對用戶友好的格式。下面的程序顯示如何調(diào)用這些方法獲得和設(shè)置日期各個部分的值。運行后輸出結(jié)果為:2010年10月6日14時35分41秒星期三。
5.7創(chuàng)建和使用自定義對象
在JavaScript腳本語言中,主要有JavaScript核心對象、瀏覽器對象、用戶自定義對象和文本對象等,其中用戶自定義對象占據(jù)舉足輕重的地位。
JavaScript作為基于對象的編程語言,其對象實例采用構(gòu)造函數(shù)來創(chuàng)建。每一個構(gòu)造函數(shù)包含一個對象原型,定義了每個對象包含的屬性和方法。對象是動態(tài)的,表明對象實例的屬性和方法是可以動態(tài)添加、刪除或修改的。
JavaScript腳本中創(chuàng)建自定義對象的方法主要有兩種,通過定義對象的構(gòu)造函數(shù)的方法和通過對象直接初始化的方法。5.7.1定義對象的構(gòu)造函數(shù)
下面的實例是通過定義對象的構(gòu)造函數(shù)的方法和使用new操作符所生成的對象實例,先考察其代碼。程序運行結(jié)果如圖5-8所示。圖5-85.7.2對象直接初
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年專用版文化藝術(shù)品版權(quán)保護與授權(quán)合同
- 專業(yè)產(chǎn)品開發(fā)服務(wù)協(xié)議2024年版
- 2025年度餐飲行業(yè)廚師創(chuàng)新研發(fā)勞動合同3篇
- 2024年版軟件購銷協(xié)議模板細則版B版
- 2024年采購供需協(xié)議
- 2025年度草原防火與應(yīng)急管理服務(wù)合同3篇
- 2024年門窗安裝工程勞務(wù)派遣合同
- 2025年度智慧城市O2O綜合服務(wù)戰(zhàn)略合作協(xié)議書3篇
- 中醫(yī)基本知識培訓(xùn)課件
- 白酒知識線上培訓(xùn)課件
- 2022年11月26日四川省瀘州市事業(yè)單位招聘考試《綜合知識》精選真題及答案
- 消化內(nèi)鏡治療新技術(shù)課件
- 小學(xué)語文作業(yè)分層設(shè)計分析
- 讀者文章匯總 讀者文摘100篇
- 現(xiàn)代文閱讀之散文
- 山東省濟南市高職單招2022-2023學(xué)年醫(yī)學(xué)綜合真題及答案
- 配色技術(shù)員工作計劃工作總結(jié)述職報告PPT模板下載
- 挖掘機、裝載機檢驗報告完整
- 小學(xué)科學(xué)三年級上冊期末考試質(zhì)量分析
- 從業(yè)人員在安全生產(chǎn)方面的權(quán)利和義務(wù)
- Architecture-古希臘古羅馬建筑英文版
評論
0/150
提交評論