javascript內置對象

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

Number

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

var myNumber = new Number(numeric value);

或者,您可以通過將一個變量設置爲一個數值來創建一個 Number 對象。然後,該變量將 能夠訪問該對象可用的屬性和方法。

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

  • MAX_VALUE

  • MIN_VALUE

  • NEGATIVE_INFINITY

  • POSITIVE_INFINITY

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、 -0null 或 "" [一個空字串]),未定義的 (NaN),當然還有 false。所有其他布爾 值相當於 true 值。該對象可以 通過 new 關鍵詞進行實例化,但通常是 一個被設爲 true 或 false 值的變量:

var myBoolean = true;

Boolean 對象包括 toString 和 valueOf 方法,儘管您不太可能需要使用這些方法。 Boolean 最常用於在 條件語句中 true 或 false 值的簡單判斷。 布爾值和條件語句的組合提供了一種使用 JavaScript 創建邏輯的方式。此類條件語句的示例包括 ifif...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、 pushshift 和unshiftpop 和 shift 方法都從 數組中刪除元素。pop 方法刪除並返回 一個數組中的最後一個元素,而 shift 方法刪除並返回一個數組中的第一個元素。相反的 功能可以通過 push 和 unshift 方法實現,它們將元素添加到 數組中。push 方法將元素作爲新元素添加到 數組的結尾,並返回新長度,而 unshift 方法將元素添加到 數組的前面,並返回新長度。

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

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

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

Math

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

var pi = Math.PI;

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

  • E

  • LN2

  • LN10

  • LOG2E

  • LOG10E

  • PI

  • SQRT1_2

  • SQRT2

E 屬性返回 自然對數的底數的值,或歐拉指數。該值是惟一的 實數,以 Leonhard Euler 命名。調用 E 屬性會產生數字 2.718281828459045。其他兩個屬性也用於返回自然 對數:LN2 和 LN10LN2 屬性返回值爲 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一個數的自然 對數

  • powx 的 y 次方值

  • sin正弦

  • sqrt平方根

  • tan一個角的 正切

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

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

結束語

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

參考資料

學習


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章