JavaScript常用的內建對象

來源:互聯網
上載者:User

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

Number

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

 
  1. 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能夠處理的最大數字:

 
  1. document.write(Number.MAX_VALUE);  
  2.  
  3.  // Result is: 1.7976931348623157e+308 

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

 
  1. document.write(Number.MIN_VALUE);  
  2.  
  3.  // Result is: 5e-324 

NEGATIVE_INFINITY 是JavaScript能夠處理的最大負數,表示為-Infinity:

 
  1. document.write(Number.NEGATIVE_INFINITY);  
  2.  
  3.  // Result is: -Infinity  
  4.   

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

 
  1. document.write(Number.POSITIVE_INFINITY);  
  2.  
  3.  // 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 值的變數:

 
  1. var myBoolean = true; 

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

清單 1. 與布爾值相結合的條件陳述式

 
  1. var myBoolean = true;  
  2.  
  3.  if(myBoolean == true) {  
  4.  
  5.  // If the condition evaluates to true  
  6.  
  7.  }  
  8.  
  9.  else {  
  10.  
  11.  // If the condition evaluates to false  
  12.  
  13.  } 

不言而喻,Boolean 對象 是 JavaScript 一個極其重要的組成部分。如果沒有 Boolean 對象, 在條件陳述式內便無法進行判斷。

String

JavaScript String 對象是 文本值的封裝器。除了儲存文本, String 對象包含一個屬性和各種 方法來操作或收集有關文本的資訊。與 Boolean 對象類似, String 對象不需要進行執行個體化 便能夠使用。例如,您可以將一個變數設定為一個字串, 然後 String 對象的所有屬性或 方法都可用於該變數:

 
  1. var myString = "My string"; 

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

 
  1. var myString = "My string";  
  2.  
  3.  document.write(myString.length);  
  4.  
  5.  // Results in a numeric value of 9  
  6.    

該代碼的結果是 9,因為 兩個詞之間的空格也作為一個字元計算。

在 String 對象中有相當多的方法可用於操作和收集有關文本的資訊。 以下是可用的方法列表:

  • charAt
  • charCodeAt
  • concat
  • fromCharCode
  • indexOf
  • lastIndexOf
  • match
  • replace
  • search
  • slice
  • split
  • substr
  • substring
  • toLowerCase
  • toUpperCase

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

 
  1. var myString = "My string";  
  2.  
  3.  document.write(myString.chartAt(0);  
  4.  
  5.  // Results in M  
  6.   

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

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

如果您想要組合字元串,可以使用加號 (+) 將這些字串加起來,或者您可以 更適當地使用 concat 方法。該 方法接受無限數量的字串參數,串連它們,並 將綜合結果作為新字串返回。清單 2 展示了如何使用 concat 執行個體將多個字串合并成一個。

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

 
  1. var myString1 = "My";  
  2.  
  3.  var myString2 = " ";  
  4.  
  5.  var myString3 = "string";  
  6.  
  7.  document.write(myString.concat(myString1, myString2, myString3);  
  8.  
  9.  // Results in "My String" 

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

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

Date

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

 
  1. var myDate = new Date(); 

或傳遞 milliseconds 作為一個參數:

 
  1. var myDate = new Date(milliseconds); 

您可以將一個日期文字作為一個參數傳遞:

 
  1. var myDate = new Date(dateString); 

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

 
  1. var myDate = new Date(year, month, day, hours, minutes, seconds, milliseconds);  
  2.  
  3.    
  4.  

此外,有幾種方法可用於 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 方法將日期轉換為 字串:

 
  1. var myDate = new Date();  
  2.  
  3.  document.write(myDate.toDateString());  
  4.    

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

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

 
  1. var myDate = new Date();  
  2.  
  3.  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。該屬性返回 一個數組中的元素數目,通常在使用 迴圈迭代數組中的值時用到:

 
  1. var myArray = new Array(1, 2, 3);  
  2.  
  3.  for(var i=0; i<myArray.length; i++) {  
  4.  
  5.  document.write(myArray[i]);  
  6.  
  7.  } 

有多種方法可用於 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 對象的原樣使用它,在沒有任何執行個體的情況下從該對象調用屬性和 方法:

 
  1. var pi = Math.PI; 

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

  • E
  • LN2
  • LN10
  • LOG2E
  • LOG10E
  • PI
  • 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 <img>標記。

結束語

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.