瞭解 JavaScript 中的內置對象

Number

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

var myNumber = new Number(numeric value);

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

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

  • MAX_VALUEdom

  • MIN_VALUE編程語言

  • NEGATIVE_INFINITY函數

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

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

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

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 語句。當與 條件語句結合使用時,您能夠基於 您編寫的條件使用布爾值肯定結果。

與布爾值相結合的條件語句 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 屬性肯定一個字符串中的字符數的示例:

ar 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 (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 方法。該 方法接受無限數量的字符串參數,鏈接它們,並 將綜合結果做爲新字符串返回。展現瞭如何使用 concat 實例將多個字符串合併成一個。

使用 concat 方法合併多個字符串

ar 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 方法,它搜索正則表達式的匹配結果並返回其 位置。

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
  • 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 是一種靈活的語言,這有時使它 名聲較差,可是往好的一面看,它也向您提供了 快速、創造性地編寫代碼的能力。

相關文章
相關標籤/搜索