JavaScipt對(duì)象的基本知識(shí)第1/2頁(yè)
更新時(shí)間:2008年01月16日 20:38:22 作者:
JavaScipt對(duì)象的基本知識(shí)
JavaScript 是使用“對(duì)象化編程”的,或者叫“面向?qū)ο缶幊獭钡摹K^“對(duì)象化編程”,意思是把 JavaScript 能涉及的范圍劃分成大大小小的對(duì)象,對(duì)象下面還繼續(xù)劃分對(duì)象直至非常詳細(xì)為止,所有的編程都以對(duì)象為出發(fā)點(diǎn),基于對(duì)象。小到一個(gè)變量,大到網(wǎng)頁(yè)文檔、窗口甚至屏幕,都是對(duì)象。這一章將“面向?qū)ο蟆敝v述 JavaScript 的運(yùn)行情況。
對(duì)象的基本知識(shí)
對(duì)象是可以從 JavaScript“勢(shì)力范圍”中劃分出來(lái)的一小塊,可以是一段文字、一幅圖片、一個(gè)表單(Form)等等。每個(gè)對(duì)象有它自己的屬性、方法和事件。對(duì)象的屬性是反映該對(duì)象某些特定的性質(zhì)的,例如:字符串的長(zhǎng)度、圖像的長(zhǎng)寬、文字框(Textbox)里的文字等等;對(duì)象的方法能對(duì)該對(duì)象做一些事情,例如,表單的“提交”(Submit),窗口的“滾動(dòng)”(Scrolling)等等;而對(duì)象的事件就能響應(yīng)發(fā)生在對(duì)象上的事情,例如提交表單產(chǎn)生表單的“提交事件”,點(diǎn)擊連接產(chǎn)生的“點(diǎn)擊事件”。不是所有的對(duì)象都有以上三個(gè)性質(zhì),有些沒(méi)有事件,有些只有屬性。引用對(duì)象的任一“性質(zhì)”用“<對(duì)象名>.<性質(zhì)名>”這種方法。
基本對(duì)象
現(xiàn)在我們要復(fù)習(xí)以上學(xué)過(guò)的內(nèi)容了——把一些數(shù)據(jù)類(lèi)型用對(duì)象的角度重新學(xué)習(xí)一下。
Number “數(shù)字”對(duì)象。這個(gè)對(duì)象用得很少,作者就一次也沒(méi)有見(jiàn)過(guò)。不過(guò)屬于“Number”的對(duì)象,也就是“變量”就多了。
屬性
MAX_VALUE 用法:Number.MAX_VALUE;返回“最大值”。
MIN_VALUE 用法:Number.MIN_VALUE;返回“最小值”。
NaN 用法:Number.NaN 或 NaN;返回“NaN”。“NaN”(不是數(shù)值)在很早就介紹過(guò)了。
NEGATIVE_INFINITY 用法:Number.NEGATIVE_INFINITY;返回:負(fù)無(wú)窮大,比“最小值”還小的值。
POSITIVE_INFINITY 用法:Number.POSITIVE_INFINITY;返回:正無(wú)窮大,比“最大值”還大的值。
方法
toString() 用法:<數(shù)值變量>.toString();返回:字符串形式的數(shù)值。如:若 a == 123;則 a.toString() == '123'。
String 字符串對(duì)象。聲明一個(gè)字符串對(duì)象最簡(jiǎn)單、快捷、有效、常用的方法就是直接賦值。
屬性
length 用法:<字符串對(duì)象>.length;返回該字符串的長(zhǎng)度。
方法
charAt() 用法:<字符串對(duì)象>.charAt(<位置>);返回該字符串位于第<位置>位的單個(gè)字符。注意:字符串中的一個(gè)字符是第 0 位的,第二個(gè)才是第 1 位的,最后一個(gè)字符是第 length - 1 位的。
charCodeAt() 用法:<字符串對(duì)象>.charCodeAt(<位置>);返回該字符串位于第<位置>位的單個(gè)字符的 ASCII 碼。
fromCharCode() 用法:String.fromCharCode(a, b, c...);返回一個(gè)字符串,該字符串每個(gè)字符的 ASCII 碼由 a, b, c... 等來(lái)確定。
indexOf() 用法:<字符串對(duì)象>.indexOf(<另一個(gè)字符串對(duì)象>[, <起始位置>]);該方法從<字符串對(duì)象>中查找<另一個(gè)字符串對(duì)象>(如果給出<起始位置>就忽略之前的位置),如果找到了,就返回它的位置,沒(méi)有找到就返回“-1”。所有的“位置”都是從零開(kāi)始的。
lastIndexOf() 用法:<字符串對(duì)象>.lastIndexOf(<另一個(gè)字符串對(duì)象>[, <起始位置>]);跟 indexOf() 相似,不過(guò)是從后邊開(kāi)始找。
split() 用法:<字符串對(duì)象>.split(<分隔符字符>);返回一個(gè)數(shù)組,該數(shù)組是從<字符串對(duì)象>中分離開(kāi)來(lái)的,<分隔符字符>決定了分離的地方,它本身不會(huì)包含在所返回的數(shù)組中。例如:'1&2&345&678'.split('&')返回?cái)?shù)組:1,2,345,678。關(guān)于數(shù)組,我們等一下就討論。
substring() 用法:<字符串對(duì)象>.substring(<始>[, <終>]);返回原字符串的子字符串,該字符串是原字符串從<始>位置到<終>位置的前一位置的一段。<終> - <始> = 返回字符串的長(zhǎng)度(length)。如果沒(méi)有指定<終>或指定得超過(guò)字符串長(zhǎng)度,則子字符串從<始>位置一直取到原字符串尾。如果所指定的位置不能返回字符串,則返回空字符串。
substr() 用法:<字符串對(duì)象>.substr(<始>[, <長(zhǎng)>]);返回原字符串的子字符串,該字符串是原字符串從<始>位置開(kāi)始,長(zhǎng)度為<長(zhǎng)>的一段。如果沒(méi)有指定<長(zhǎng)>或指定得超過(guò)字符串長(zhǎng)度,則子字符串從<始>位置一直取到原字符串尾。如果所指定的位置不能返回字符串,則返回空字符串。
toLowerCase() 用法:<字符串對(duì)象>.toLowerCase();返回把原字符串所有大寫(xiě)字母都變成小寫(xiě)的字符串。
toUpperCase() 用法:<字符串對(duì)象>.toUpperCase();返回把原字符串所有小寫(xiě)字母都變成大寫(xiě)的字符串。
Array 數(shù)組對(duì)象。數(shù)組對(duì)象是一個(gè)對(duì)象的集合,里邊的對(duì)象可以是不同類(lèi)型的。數(shù)組的每一個(gè)成員對(duì)象都有一個(gè)“下標(biāo)”,用來(lái)表示它在數(shù)組中的位置(既然是“位置”,就也是從零開(kāi)始的啦)。
數(shù)組的定義方法:
var <數(shù)組名> = new Array();
這樣就定義了一個(gè)空數(shù)組。以后要添加數(shù)組元素,就用:
<數(shù)組名>[<下標(biāo)>] = ...;
注意這里的方括號(hào)不是“可以省略”的意思,數(shù)組的下標(biāo)表示方法就是用方括號(hào)括起來(lái)。
如果想在定義數(shù)組的時(shí)候直接初始化數(shù)據(jù),請(qǐng)用:
var <數(shù)組名> = new Array(<元素1>, <元素2>, <元素3>...);
例如,var myArray = new Array(1, 4.5, 'Hi'); 定義了一個(gè)數(shù)組 myArray,里邊的元素是:myArray[0] == 1; myArray[1] == 4.5; myArray[2] == 'Hi'。
但是,如果元素列表中只有一個(gè)元素,而這個(gè)元素又是一個(gè)正整數(shù)的話,這將定義一個(gè)包含<正整數(shù)>個(gè)空元素的數(shù)組。
注意:JavaScript只有一維數(shù)組!千萬(wàn)不要用“Array(3,4)”這種愚蠢的方法來(lái)定義 4 x 5 的二維數(shù)組,或者用“myArray[2,3]”這種方法來(lái)返回“二維數(shù)組”中的元素。任意“myArray[...,3]”這種形式的調(diào)用其實(shí)只返回了“myArray[3]”。要使用多維數(shù)組,請(qǐng)用這種虛擬法:
var myArray = new Array(new Array(), new Array(), new Array(), ...);
其實(shí)這是一個(gè)一維數(shù)組,里邊的每一個(gè)元素又是一個(gè)數(shù)組。調(diào)用這個(gè)“二維數(shù)組”的元素時(shí):myArray[2][3] = ...;
屬性
length 用法:<數(shù)組對(duì)象>.length;返回:數(shù)組的長(zhǎng)度,即數(shù)組里有多少個(gè)元素。它等于數(shù)組里最后一個(gè)元素的下標(biāo)加一。所以,想添加一個(gè)元素,只需要:myArray[myArray.length] = ...。
方法
join() 用法:<數(shù)組對(duì)象>.join(<分隔符>);返回一個(gè)字符串,該字符串把數(shù)組中的各個(gè)元素串起來(lái),用<分隔符>置于元素與元素之間。這個(gè)方法不影響數(shù)組原本的內(nèi)容。
reverse() 用法:<數(shù)組對(duì)象>.reverse();使數(shù)組中的元素順序反過(guò)來(lái)。如果對(duì)數(shù)組[1, 2, 3]使用這個(gè)方法,它將使數(shù)組變成:[3, 2, 1]。
slice() 用法:<數(shù)組對(duì)象>.slice(<始>[, <終>]);返回一個(gè)數(shù)組,該數(shù)組是原數(shù)組的子集,始于<始>,終于<終>。如果不給出<終>,則子集一直取到原數(shù)組的結(jié)尾。
sort() 用法:<數(shù)組對(duì)象>.sort([<方法函數(shù)>]);使數(shù)組中的元素按照一定的順序排列。如果不指定<方法函數(shù)>,則按字母順序排列。在這種情況下,80 是比 9 排得前的。如果指定<方法函數(shù)>,則按<方法函數(shù)>所指定的排序方法排序。<方法函數(shù)>比較難講述,這里只將一些有用的<方法函數(shù)>介紹給大家。
按升序排列數(shù)字:
function sortMethod(a, b) {
return a - b;
}
myArray.sort(sortMethod);
按降序排列數(shù)字:把上面的“a - b”該成“b - a”。
有關(guān)函數(shù),請(qǐng)看下面。
Math “數(shù)學(xué)”對(duì)象,提供對(duì)數(shù)據(jù)的數(shù)學(xué)計(jì)算。下面所提到的屬性和方法,不再詳細(xì)說(shuō)明“用法”,大家在使用的時(shí)候記住用“Math.<名>”這種格式。
對(duì)象的基本知識(shí)
對(duì)象是可以從 JavaScript“勢(shì)力范圍”中劃分出來(lái)的一小塊,可以是一段文字、一幅圖片、一個(gè)表單(Form)等等。每個(gè)對(duì)象有它自己的屬性、方法和事件。對(duì)象的屬性是反映該對(duì)象某些特定的性質(zhì)的,例如:字符串的長(zhǎng)度、圖像的長(zhǎng)寬、文字框(Textbox)里的文字等等;對(duì)象的方法能對(duì)該對(duì)象做一些事情,例如,表單的“提交”(Submit),窗口的“滾動(dòng)”(Scrolling)等等;而對(duì)象的事件就能響應(yīng)發(fā)生在對(duì)象上的事情,例如提交表單產(chǎn)生表單的“提交事件”,點(diǎn)擊連接產(chǎn)生的“點(diǎn)擊事件”。不是所有的對(duì)象都有以上三個(gè)性質(zhì),有些沒(méi)有事件,有些只有屬性。引用對(duì)象的任一“性質(zhì)”用“<對(duì)象名>.<性質(zhì)名>”這種方法。
基本對(duì)象
現(xiàn)在我們要復(fù)習(xí)以上學(xué)過(guò)的內(nèi)容了——把一些數(shù)據(jù)類(lèi)型用對(duì)象的角度重新學(xué)習(xí)一下。
Number “數(shù)字”對(duì)象。這個(gè)對(duì)象用得很少,作者就一次也沒(méi)有見(jiàn)過(guò)。不過(guò)屬于“Number”的對(duì)象,也就是“變量”就多了。
屬性
MAX_VALUE 用法:Number.MAX_VALUE;返回“最大值”。
MIN_VALUE 用法:Number.MIN_VALUE;返回“最小值”。
NaN 用法:Number.NaN 或 NaN;返回“NaN”。“NaN”(不是數(shù)值)在很早就介紹過(guò)了。
NEGATIVE_INFINITY 用法:Number.NEGATIVE_INFINITY;返回:負(fù)無(wú)窮大,比“最小值”還小的值。
POSITIVE_INFINITY 用法:Number.POSITIVE_INFINITY;返回:正無(wú)窮大,比“最大值”還大的值。
方法
toString() 用法:<數(shù)值變量>.toString();返回:字符串形式的數(shù)值。如:若 a == 123;則 a.toString() == '123'。
String 字符串對(duì)象。聲明一個(gè)字符串對(duì)象最簡(jiǎn)單、快捷、有效、常用的方法就是直接賦值。
屬性
length 用法:<字符串對(duì)象>.length;返回該字符串的長(zhǎng)度。
方法
charAt() 用法:<字符串對(duì)象>.charAt(<位置>);返回該字符串位于第<位置>位的單個(gè)字符。注意:字符串中的一個(gè)字符是第 0 位的,第二個(gè)才是第 1 位的,最后一個(gè)字符是第 length - 1 位的。
charCodeAt() 用法:<字符串對(duì)象>.charCodeAt(<位置>);返回該字符串位于第<位置>位的單個(gè)字符的 ASCII 碼。
fromCharCode() 用法:String.fromCharCode(a, b, c...);返回一個(gè)字符串,該字符串每個(gè)字符的 ASCII 碼由 a, b, c... 等來(lái)確定。
indexOf() 用法:<字符串對(duì)象>.indexOf(<另一個(gè)字符串對(duì)象>[, <起始位置>]);該方法從<字符串對(duì)象>中查找<另一個(gè)字符串對(duì)象>(如果給出<起始位置>就忽略之前的位置),如果找到了,就返回它的位置,沒(méi)有找到就返回“-1”。所有的“位置”都是從零開(kāi)始的。
lastIndexOf() 用法:<字符串對(duì)象>.lastIndexOf(<另一個(gè)字符串對(duì)象>[, <起始位置>]);跟 indexOf() 相似,不過(guò)是從后邊開(kāi)始找。
split() 用法:<字符串對(duì)象>.split(<分隔符字符>);返回一個(gè)數(shù)組,該數(shù)組是從<字符串對(duì)象>中分離開(kāi)來(lái)的,<分隔符字符>決定了分離的地方,它本身不會(huì)包含在所返回的數(shù)組中。例如:'1&2&345&678'.split('&')返回?cái)?shù)組:1,2,345,678。關(guān)于數(shù)組,我們等一下就討論。
substring() 用法:<字符串對(duì)象>.substring(<始>[, <終>]);返回原字符串的子字符串,該字符串是原字符串從<始>位置到<終>位置的前一位置的一段。<終> - <始> = 返回字符串的長(zhǎng)度(length)。如果沒(méi)有指定<終>或指定得超過(guò)字符串長(zhǎng)度,則子字符串從<始>位置一直取到原字符串尾。如果所指定的位置不能返回字符串,則返回空字符串。
substr() 用法:<字符串對(duì)象>.substr(<始>[, <長(zhǎng)>]);返回原字符串的子字符串,該字符串是原字符串從<始>位置開(kāi)始,長(zhǎng)度為<長(zhǎng)>的一段。如果沒(méi)有指定<長(zhǎng)>或指定得超過(guò)字符串長(zhǎng)度,則子字符串從<始>位置一直取到原字符串尾。如果所指定的位置不能返回字符串,則返回空字符串。
toLowerCase() 用法:<字符串對(duì)象>.toLowerCase();返回把原字符串所有大寫(xiě)字母都變成小寫(xiě)的字符串。
toUpperCase() 用法:<字符串對(duì)象>.toUpperCase();返回把原字符串所有小寫(xiě)字母都變成大寫(xiě)的字符串。
Array 數(shù)組對(duì)象。數(shù)組對(duì)象是一個(gè)對(duì)象的集合,里邊的對(duì)象可以是不同類(lèi)型的。數(shù)組的每一個(gè)成員對(duì)象都有一個(gè)“下標(biāo)”,用來(lái)表示它在數(shù)組中的位置(既然是“位置”,就也是從零開(kāi)始的啦)。
數(shù)組的定義方法:
var <數(shù)組名> = new Array();
這樣就定義了一個(gè)空數(shù)組。以后要添加數(shù)組元素,就用:
<數(shù)組名>[<下標(biāo)>] = ...;
注意這里的方括號(hào)不是“可以省略”的意思,數(shù)組的下標(biāo)表示方法就是用方括號(hào)括起來(lái)。
如果想在定義數(shù)組的時(shí)候直接初始化數(shù)據(jù),請(qǐng)用:
var <數(shù)組名> = new Array(<元素1>, <元素2>, <元素3>...);
例如,var myArray = new Array(1, 4.5, 'Hi'); 定義了一個(gè)數(shù)組 myArray,里邊的元素是:myArray[0] == 1; myArray[1] == 4.5; myArray[2] == 'Hi'。
但是,如果元素列表中只有一個(gè)元素,而這個(gè)元素又是一個(gè)正整數(shù)的話,這將定義一個(gè)包含<正整數(shù)>個(gè)空元素的數(shù)組。
注意:JavaScript只有一維數(shù)組!千萬(wàn)不要用“Array(3,4)”這種愚蠢的方法來(lái)定義 4 x 5 的二維數(shù)組,或者用“myArray[2,3]”這種方法來(lái)返回“二維數(shù)組”中的元素。任意“myArray[...,3]”這種形式的調(diào)用其實(shí)只返回了“myArray[3]”。要使用多維數(shù)組,請(qǐng)用這種虛擬法:
var myArray = new Array(new Array(), new Array(), new Array(), ...);
其實(shí)這是一個(gè)一維數(shù)組,里邊的每一個(gè)元素又是一個(gè)數(shù)組。調(diào)用這個(gè)“二維數(shù)組”的元素時(shí):myArray[2][3] = ...;
屬性
length 用法:<數(shù)組對(duì)象>.length;返回:數(shù)組的長(zhǎng)度,即數(shù)組里有多少個(gè)元素。它等于數(shù)組里最后一個(gè)元素的下標(biāo)加一。所以,想添加一個(gè)元素,只需要:myArray[myArray.length] = ...。
方法
join() 用法:<數(shù)組對(duì)象>.join(<分隔符>);返回一個(gè)字符串,該字符串把數(shù)組中的各個(gè)元素串起來(lái),用<分隔符>置于元素與元素之間。這個(gè)方法不影響數(shù)組原本的內(nèi)容。
reverse() 用法:<數(shù)組對(duì)象>.reverse();使數(shù)組中的元素順序反過(guò)來(lái)。如果對(duì)數(shù)組[1, 2, 3]使用這個(gè)方法,它將使數(shù)組變成:[3, 2, 1]。
slice() 用法:<數(shù)組對(duì)象>.slice(<始>[, <終>]);返回一個(gè)數(shù)組,該數(shù)組是原數(shù)組的子集,始于<始>,終于<終>。如果不給出<終>,則子集一直取到原數(shù)組的結(jié)尾。
sort() 用法:<數(shù)組對(duì)象>.sort([<方法函數(shù)>]);使數(shù)組中的元素按照一定的順序排列。如果不指定<方法函數(shù)>,則按字母順序排列。在這種情況下,80 是比 9 排得前的。如果指定<方法函數(shù)>,則按<方法函數(shù)>所指定的排序方法排序。<方法函數(shù)>比較難講述,這里只將一些有用的<方法函數(shù)>介紹給大家。
按升序排列數(shù)字:
function sortMethod(a, b) {
return a - b;
}
myArray.sort(sortMethod);
按降序排列數(shù)字:把上面的“a - b”該成“b - a”。
有關(guān)函數(shù),請(qǐng)看下面。
Math “數(shù)學(xué)”對(duì)象,提供對(duì)數(shù)據(jù)的數(shù)學(xué)計(jì)算。下面所提到的屬性和方法,不再詳細(xì)說(shuō)明“用法”,大家在使用的時(shí)候記住用“Math.<名>”這種格式。
您可能感興趣的文章:
- 解析Java的JNI編程中的對(duì)象引用與內(nèi)存泄漏問(wèn)題
- Java中典型的內(nèi)存泄露問(wèn)題和解決方法
- Java中內(nèi)存分配的幾種方法
- 詳細(xì)介紹Java內(nèi)存泄露原因
- 基于Java內(nèi)存溢出的解決方法詳解
- 深入分析Java內(nèi)存區(qū)域的使用詳解
- java 序列化對(duì)象 serializable 讀寫(xiě)數(shù)據(jù)的實(shí)例
- 深入理解Java對(duì)象的序列化與反序列化的應(yīng)用
- 深入JAVA對(duì)象深度克隆的詳解
- 深入Java對(duì)象的地址的使用分析
- 解析Java程序中對(duì)象內(nèi)存的分配和控制的基本方法
相關(guān)文章
JavaScript 無(wú)符號(hào)右移運(yùn)算符
無(wú)符號(hào)右移運(yùn)算符 (>>>)是右移表達(dá)式的位,不保留符號(hào)。2009-04-04JavaScript初學(xué)者建議:不要去管瀏覽器兼容
如果可以回到過(guò)去的話,我會(huì)告訴自己這句話:初學(xué)JavaScript的時(shí)候無(wú)視DOM和BOM的兼容性,先了解一些基礎(chǔ)知識(shí)最后再考慮兼容性2014-02-0230分鐘就入門(mén)的正則表達(dá)式基礎(chǔ)教程
30分鐘內(nèi)讓你明白正則表達(dá)式是什么,并對(duì)它有一些基本的了解,讓你可以在自己的程序或網(wǎng)頁(yè)里使用它。2013-02-02JavaScript中的勻速運(yùn)動(dòng)和變速(緩沖)運(yùn)動(dòng)詳細(xì)介紹
一個(gè)div的運(yùn)動(dòng)其實(shí)就是它與瀏覽器邊框的距離在變動(dòng)。如果他變化的速率一定,那就是勻速運(yùn)動(dòng);如果變化的速率不一定,那么就是變速運(yùn)動(dòng)2012-11-11幾種經(jīng)典排序算法的JS實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇幾種經(jīng)典排序算法的JS實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-03-03解析js如何獲取當(dāng)前url中的參數(shù)值并復(fù)制給input
本篇文章是對(duì)js獲取當(dāng)前url中的參數(shù)值并復(fù)制給input的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06Javascript核心讀書(shū)有感之語(yǔ)言核心
本節(jié)是javascript語(yǔ)言的一個(gè)快速預(yù)覽,也是本書(shū)的第一部分快速預(yù)覽。有想閱讀此書(shū)的小伙伴,建議先讀下本系列文章。2015-02-02Javascript call和apply區(qū)別及使用方法
JavaScript中通過(guò)call或者apply用來(lái)代替另一個(gè)對(duì)象調(diào)用一個(gè)方法,將一個(gè)函數(shù)的對(duì)象上下文從初始的上下文改變?yōu)橛?thisObj 指定的新對(duì)象2013-11-11