瞭解 JavaScript 中的內置對象

瞭解 JavaScript 中的內置對象


全部編程語言 都具備內部(或內置的)對象來建立 語言的基本功能。內部對象是 您編寫自定義代碼所用語言的基礎, 該代碼基於您的想象實現自定義功能。JavaScript 有許多 將其定義爲語言的內部對象。本文介紹了一些 最經常使用的對象,並簡要介紹了它們 有哪些功能以及如何使用這些功能。正則表達式

Number編程

JavaScript Number 對象是 一個數值包裝器。您能夠將其與 new 關鍵詞結合使用,並將其設置爲一個稍後要在 JavaScript 代碼中使用的變量:數組


var myNumber = new Number(numeric value);dom

或者,您能夠經過將一個變量設置爲一個數值來建立一個 Number 對象。而後,該變量將 可以訪問該對象可用的屬性和方法。編程語言

除了存儲數值, Number 對象包含各類屬性和 方法,用於操做或檢索關於數字的信息。 Number 對象可用的全部屬性 都是隻讀常量,這意味着它們的值始終保持 不變,不能更改。有 4 個屬性包含在 Number 對象裏:函數

●MAX_VALUE網站

●MIN_VALUElua

●NEGATIVE_INFINITYspa

●POSITIVE_INFINITYcode

MAX_VALUE 屬性返回 1.7976931348623157e+308 值,它是 JavaScript 可以處理的最大數字:


document.write(Number.MAX_VALUE);

// Result is: 1.7976931348623157e+308

另外,使用 MIN_VALUE 返回 5e-324 值,這是 JavaScript 中最小的數字:


document.write(Number.MIN_VALUE);

// Result is: 5e-324

NEGATIVE_INFINITY 是 JavaScript 可以處理的最大負數,表示爲 -Infinity:


document.write(Number.NEGATIVE_INFINITY);

// Result is: -Infinity

POSITIVE_INFINITY 屬性是大於 MAX_VALUE 的任意數,表示爲 Infinity:


document.write(Number.POSITIVE_INFINITY);

// Result is: Infinity

Number 對象還有一些方法,您能夠 用這些方法對數值進行格式化或進行轉換。這些方法包括:

●toExponential

●toFixed

●toPrecision

●toString

●valueOf

每種方法基本上執行如其名稱所暗示的操做。例如, toExponential 方法以指數形式返回 數字的字符串表示。每種 方法的獨特之處在於它接受的參數。 toExponential 方法有一個可選參數, 可用於設置要使用多少有效數字, toFixed 方法基於所傳遞的參數肯定小數 精度, toPrecision 方法基於所傳遞的參數肯定 要顯示的有效數字。

JavaScript 中的每一個對象都包含一個 toString 和 valueOf 方法,所以這些方法 在前面的章節中不介紹。 toString 方法返回 數字的字符串表示(在本例中),可是在其餘對象中,它返回 相應對象類型的字符串表示。valueOf 方法返回調用它的對象類型的原始值,在本例中爲 Number 對象。

僅 Number 對象彷佛並不十分 強大,但它是任何編程語言的一個重要組成部分, JavaScript 也不例外。JavaScript Number 對象爲任何 數學程序提供基礎,這基本上是全部 編程語言的基礎。

Boolean

Boolean 在嘗試 用 JavaScript 建立任何邏輯時是必要的。Boolean 是一個 表明 true 或 false 值的對象。 Boolean 對象有多個值,這些值 至關於 false 值(0、 -0、null 或 「」 [一個空字串]),未定義的 (NaN),固然還有 false。全部其餘布爾 值至關於 true 值。該對象能夠 經過 new 關鍵詞進行實例化,但一般是 一個被設爲 true 或 false 值的變量:


var myBoolean = true;

Boolean 對象包括 toString 和 valueOf 方法,儘管您不太可能須要使用這些方法。 Boolean 最經常使用於在 條件語句中 true 或 false 值的簡單判斷。 布爾值和條件語句的組合提供了一種使用 JavaScript 建立邏輯的方式。此類條件語句的示例包括 if、if…else、 if…else…if 以及 switch 語句。當與 條件語句結合使用時,您能夠基於 您編寫的條件使用布爾值肯定結果。清單 1 顯示了 條件語句與布爾值相結合的一個簡單示例。

清單 1. 與布爾值相結合的條件語句


var myBoolean = true;

if(myBoolean == true) {

// If the condition evaluates to true

}

else {

// If the condition evaluates to false

}

不言而喻,Boolean 對象 是 JavaScript 一個極其重要的組成部分。若是沒有 Boolean 對象, 在條件語句內便沒法進行判斷。

String

JavaScript String 對象是 文本值的包裝器。除了存儲文本, String 對象包含一個屬性和各類 方法來操做或收集有關文本的信息。與 Boolean 對象相似, String 對象不須要進行實例化 便可以使用。例如,您能夠將一個變量設置爲一個字符串, 而後 String 對象的全部屬性或 方法均可用於該變量:


var myString = "My string";

String 對象只有一個 屬性,即 length,它是 只讀的。length 屬性可用於只返回 字符串的長度:您不能在外部修改它。隨後的代碼 提供了使用 length 屬性肯定一個字符串中的字符數的示例:


var myString = "My string";

document.write(myString.length);

// Results in a numeric value of 9

該代碼的結果是 9,由於 兩個詞之間的空格也做爲一個字符計算。

在 String 對象中有至關多的方法可用於操做和收集有關文本的信息。 如下是可用的方法列表:

●charAt

●charCodeAt

●concat

●fromCharCode

●indexOf

●lastIndexOf

●match

●replace

●search

●slice

●split

●substr

●substring

●toLowerCase

●toUpperCase

chartAt 方法可用於基於您做爲參數傳遞的索引檢索 特定字符。 下面的代碼說明了如何返回 字符串的第一個字符:


var myString = "My string";

document.write(myString.chartAt(0);

// Results in M

若是您須要相反的結果,有幾個方法 可返回字符串中的指定字符或字符集,而不 使用索引返回字符。這些方法包括 indexOf 和 lastIndexOf,這兩個方法都包含兩個 參數:searchString 和 start。 searchString 參數是起始索引, start 參數告訴方法 從哪裏開始搜索。這兩個方法之間的區別在於, indexOf 返回第一個索引, lastIndexOf 返回最後一個索引。

charCodeAt 方法相似於 charAt:唯一的區別在於它返回 Unicode 字符。另外一種與 Unicode 相關的方法(包括在 String 對象中)是 fromCharCode,它將 Unicode 轉換爲 字符。

若是您想要組合字符串,可使用加號 (+) 將這些字符串加起來,或者您能夠 更適當地使用 concat 方法。該 方法接受無限數量的字符串參數,鏈接它們,並 將綜合結果做爲新字符串返回。清單 2 展現瞭如何使用 concat 實例將多個字符串合併成一個。

清單 2. 使用 concat 方法合併多個字符串


var myString1 = "My";

var myString2 = " ";

var myString3 = "string";

document.write(myString.concat(myString1, myString2, myString3);

// Results in "My String"

還有一組 String 方法 接受正則表達式做爲一個參數,以查找或修改一個字符串。 這些包括 match、 replace 和 search 方法。match 方法使用正則 表達式搜索特定字符串並返回全部的匹配的字符串。 replace 方法實際上接受子字符串或 正則表達式和替換字符串做爲其第二個參數, 用替換字符串更換全部匹配項,並返回更新的 字符串。這些方法的最後一個是 search 方法,它搜索正則表達式的匹配結果並返回其 位置。

若是須要修改字符串,有多個方法派得上用場。 第一個方法是 slice 方法,它基於索引或 索引的開始和結尾的組合提取 並返回一個字符串的一部分。另外一個方法是 split 方法。 split 方法每當找到分隔符參數時就將一個字符串分割成一系列 子字符串。例如,若是將逗號 (,) 做爲一個參數傳遞,那麼字符串 將在每一個逗號處分割成一個新的子字符串。可以修改字符串的方法還包括 substr 方法,它 基於指定爲參數的起始位置和長度,從字符串提取字符, 還有 substring 方法,該方法基於指定爲參數的兩個索引從一個字符串提取字符。可以改變字符串的最後的方法分別是 toLowerCase 和 toUpperCase,它們將字符串中的字符分別轉換爲 小寫和大寫字母。這些方法在 比較字符串值時很是有用,由於字符串有時可能 大小寫不一致。這些方法確保您在比較 值,而不是大小寫。

Date

JavaScript Date 對象提供了一種方式 來處理日期和時間。您能夠用許多不一樣的 方式對其進行實例化,具體取決於想要的結果。例如,您能夠在沒有參數的狀況下對其進行實例化:


var myDate = new Date();

或傳遞 milliseconds 做爲一個參數:


var myDate = new Date(milliseconds);

您能夠將一個日期字符串做爲一個參數傳遞:


var myDate = new Date(dateString);

或者您能夠傳遞多個參數來建立一個完整的日期:


var myDate = new Date(year, month, day, hours, minutes, seconds, milliseconds);

此外,有幾種方法可用於 Date 對象,一旦該對象 獲得實例化,您即可以使用這些方法。大多數可用的方法圍繞 獲取當前時間的特定部分。如下方法是 可用於 Date 對象的 getter 方法:

●getDate

●getDay

●getFullYear

●getHours

●getMilliseconds

●getMinutes

●getMonth

●getSeconds

●getTime

●getTimezoneOffset

如您所見,每一個方法所 返回的值都至關簡單。區別在於所返回的值範圍。例如, getDate 方法返回 一個月份的天數,範圍從 1 到 31;getDay 方法返回每週的天數,範圍從 0 到 6; getHours 方法返回小時數值, 範圍從 0 到 23;getMilliseconds 函數返回毫秒數值,範圍從 0 到 999。 getMinutes 和 getSeconds 方法返回一個範圍從 0 到 59 的值,getMonth 方法返回一個 從 0 到 11 之間的月份數值。本列表中唯一獨特的方法 是 getTime 和 getTimezoneOffset。 getTime 方法返回 自 1/1/1970 中午 12 點的毫秒數,而 getTimezoneOffset 方法返回 格林尼治標準時間和本地時間之間的時間差,以分鐘爲單位。

對於大多數 getter 方法,還有一個 setter 方法,接受 相應的值範圍內的數值參數。setter 方法 以下所示:

●setDate

●setFullYear

●setHours

●setMilliseconds

●setMinutes

●setMonth

●setSeconds

●setTime

對於上述全部 getter 方法,有一些匹配的方法 返回相同的值範圍,只是這些值以 國際標準時間設置。這些方法包括:

●getUTCDate

●getUTCDay

●getUTCFullYear

●getUTCHours

●getUTCMilliseconds

●getUTCMinutes

●getUTCMonth

●getUTCSeconds

固然,因爲對於全部原始 getter 方法都有 setter 方法, 對於國際標準時間也同樣。這些方法包括:

●setUTCDate

●setUTCFullYear

●setUTCHours

●setUTCMilliseconds

●setUTCMinutes

●setUTCMonth

●setUTCSeconds

正如在本文開頭提到的,我不提供許多 關於 toString 方法的信息,可是 在 Date 對象中有一些方法可將日期轉換爲一個字符串,值得一提。在某些 狀況下,須要將日期或日期的一部分轉換爲一個 字符串。例如,若是您將其追加到一個字符串或在 比較語句中使用它。有幾個方法可用於 Date 對象,提供略微不一樣的 方法將其轉換成字符串,包括:

●toDateString

●toLocaleDateString

●toLocaleTimeString

●toLocaleString

●toTimeString

●toUTCString

toDateString 方法將日期轉換爲 字符串:


var myDate = new Date();

document.write(myDate.toDateString());

toDateString 返回當前日期, 格式爲 Tue Jul 19 2011。

toTimeString 方法將時間從 Date 對象轉換爲字符串:


var myDate = new Date();

document.write(myDate.toTimeString());

toTimeString 將時間做爲字符串返回, 格式爲 23:00:00 GMT-0700 (MST)。

最後一種將日期轉換爲字符串的方法是 toUTCString,它將日期轉換爲 國際標準時間的字符串。

有幾種方法使用區域設置將日期轉換成字符串,可是在撰寫本文之時 Google Chrome 還不支持這幾種方法。不支持的方法 包括toLocaleDateString、 toLocaleTimeString 和 toLocaleString。

JavaScript Date 對象乍看起來彷佛很簡單, 可是它不只僅是一種顯示 當前日期的有用方式。它取決於您要建立的功能。 例如,Date 對象是 建立倒計時鐘表或其餘與時間相關的功能的基礎。

Array

JavaScript Array 對象是一個存儲變量的變量:您能夠用它一次在一個變量中存儲多個值, 它有許多方法容許您操做或收集 有關它所存儲的值的信息。儘管 Array 對象不差異對待值類型,可是 在一個單一數組中使用同類值是很好的作法。所以, 在同一數組中使用數字和字符串不是好的作法。全部 可用於 Array 對象的屬性 都是隻讀的,這意味着它們的值不能從外部予以更改。

可用於 Array 對象的唯一屬性 是 length。該屬性返回 一個數組中的元素數目,一般在使用 循環迭代數組中的值時用到:


var myArray = new Array(1, 2, 3);

for(var i=0; i<myArray.length; i++) {

document.write(myArray[i]);

}

有多種方法可用於 Array 對象,您可使用各類方法來向數組添加元素,或從數組刪除元素。 這些方法包括 pop、 push、shift 和 unshift。pop 和 shift 方法都從 數組中刪除元素。pop 方法刪除並返回 一個數組中的最後一個元素,而 shift 方法刪除並返回一個數組中的第一個元素。相反的 功能能夠經過 push 和 unshift 方法實現,它們將元素添加到 數組中。push 方法將元素做爲新元素添加到 數組的結尾,並返回新長度,而 unshift 方法將元素添加到 數組的前面,並返回新長度。

在 JavaScript 中對數組進行排序能夠經過兩個方法實現,其中之一 實際上稱爲 sort。另外一個方法是 reverse。sort 方法的複雜之處在於,它基於可選的 sort 函數排列數組。 sort 函數能夠是 您編寫的任何自定義函數。reverse 方法不像 sort 那樣複雜,儘管它的確經過顛倒元素更改 數組中元素的順序。

在處理數組時,索引很是重要,由於它們定義 數組中每一個元素的位置。有兩個方法可基於索引更改 字符串:slice 和 splice。slice 方法接受索引或 索引開始和結尾的組合做爲參數,而後提取數組的一部分並基於參數將其做爲 新數組返回。splice 方法包括 index、 length 和 unlimited element 參數。該方法基於指定的索引將 元素添加到數組,並基於指定的索引將元素從 數組中刪除,或基於指定的索引將元素添加到數組或從 數組刪除元素。還有一種方法 能夠基於匹配值返回一個索引: indexOf。而後您可使用該索引截取 或拼接數組。

用任何編程語言編寫好代碼的關鍵是編寫 有條理的代碼。正如其各類方法所示, JavaScript Array 對象是一種 組織數據並建立複雜功能的強大方式。

Math

JavaScript Math 對象用於執行 數學函數。它不能加以實例化:您只能依據 Math 對象的原樣使用它,在沒有任何實例的狀況下從該對象調用屬性和 方法:


var pi = Math.PI;

Math 對象有許多屬性和方法 向 JavaScript 提供數學功能。全部的 Math 屬性都是隻讀常量, 包括如下各項:
●E

●LN10

●LOG2E

●LOG10E

●SQRT1_2

●SQRT2

E 屬性返回 天然對數的底數的值,或歐拉指數。該值是唯一的 實數,以 Leonhard Euler 命名。調用 E 屬性會產生數字 2.718281828459045。其餘兩個屬性也用於返回天然 對數:LN2 和 LN10。LN2 屬性返回值爲 2 的天然對數,而 LN10 屬性返回值爲 10 的天然 對數。LOG2E 和 LOG10E 屬性可用於返回 E 以 2 或 10 爲底的對數。 LOG2E 的結果是 1.4426950408889633,而 LOG10E 的結果是 0.4342944819032518。一般您不須要 大部分這些屬性,除非您正在構建 計算器或其餘數學密集型項目。然而, PI 和平方根比較常見。 PI 方法返回圓周與直徑的比率。兩個屬性返回平方根值: SQRT1_2 和 SQRT2。 第一個屬性返回 0.5 的平方根,而 SQRT2 返回 2 的平方根。

除了這些屬性,還有幾種方法可用來 返回一個數的不一樣值。其中每種方法都接受 數值,並根據方法名稱返回一個值。 遺憾的是,方法名稱不老是顯而易見的:

●abs。一個數的 絕對值

●acos。反餘弦

●asin。反正弦

●atan。反正切

●atan2。多個數的 反正切

●cos。餘弦

●exp。冪

●log。一個數的天然 對數

●pow。x 的 y 次方值

●sin。正弦

●sqrt。平方根

●tan。一個角的 正切

有三種方法可用於在 JavaScript 中取整數: ceil、floor 和 round。ceil 方法返回一個數的向上舍入值。該方法在 您須要將數字向上舍入到最接近的整數時很是有用。 floor 方法提供 與 ceil 相反的功能:它返回 一個數字的向下舍入值。該方法在須要 將數字向下舍入到最近的整數時很是有用。 round 方法提供了普通的四捨五入 功能,基於現有的 小數將數字向上或向下舍入。

Math 對象中包括的最後三個方法分別是 max、min 和 random。max 方法接受多個數字參數並返回最高值, 而 min 方法接受多個數字 參數並返回最低值。這些方法在 比較擁有數值的變量時很是有用,特別是當您事先不 知道是什麼數值時。您使用 random 方法返回 0 與 1 之間的一個隨機數。您能夠將該方法用做多種目的,好比在 網站主頁上顯示一個隨機圖像,或返回一個隨機數, 該隨機數可用做包含圖像的文件路徑的數組的一個索引。 從該數組選擇的隨機圖像文件路徑而後可 用於將該圖像寫到 HTML 標記。

結束語

JavaScript 提供的屬性和方法僅僅是能夠實現的 功能的開始:是您的想象力建立了 自定義功能。因爲您的想象力沒有界限,所以 您編寫的代碼也沒有界限。JavaScript 是一種靈活的語言,這有時使它 名聲較差,可是往好的一面看,它也向您提供了 快速、創造性地編寫代碼的能力。如需進一步瞭解 JavaScript 對象,以及如何使用 JavaScript 語言建立您本身的自定義對象,請務必查看 參考資料 部分。

相關文章
相關標籤/搜索