首頁 > web前端 > js教程 > 主體

JavaScript常用資料型別的概念介紹

不言
發布: 2019-03-18 10:51:13
轉載
2384 人瀏覽過

這篇文章帶給大家的內容是關於JavaScript常用資料類型的概念介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

程式語言都有內建的資料結構,但各種程式語言的資料結構常有不同之處。本文試圖列出 JavaScript 語言中內建的資料結構及其屬性,它們可以用來建構其他的資料結構;同時盡可能的描述與其他語言的不同之處。

1.動態型別

JavaScript 是一種弱型別或說動態語言。這意味著你不用事先宣告變數的類型,在程式運行過程中,類型會被自動決定。這也代表你可以使用同一個變數來保存不同類型的資料:

JS常用資料型別

#程式語言都有內建的資料結構,但各種程式語言的資料結構常有不同之處。本文試圖列出 JavaScript 語言中內建的資料結構及其屬性,它們可以用來建構其他的資料結構;同時盡可能的描述與其他語言的不同之處。

1.動態型別

JavaScript 是一種弱型別或說動態語言。這意味著你不用事先宣告變數的類型,在程式運行過程中,類型會被自動決定。這也意味著你可以使用同一個變數來保存不同類型的資料:

var foo = 42;    // foo is a Number now
foo = "bar"; // foo is a String now
foo = true;  // foo is a Boolean now
登入後複製

動態類型語言特點是靈活,缺點是犧牲了部分效能。對於動態類型語言,變數類型是可以動態改變的,無法在編譯期確定,因此編譯期的類型檢查比較弱,這將導致許多類型錯誤直到運行期才能發現。

2.資料型別

最新的ECMAScript 標準定義了7 種資料型別:

6 種原始型別:

   Boolean
   Null
   Undefined
   Number
   String
   Symbol (ECMAScript 6 新定义)
登入後複製
Object

3.原始值( primitive values )

除Object 以外的所有型別都是不可變的(值本身無法改變)。例如,與 C 語言不同,JavaScript 中字串是不可變的(譯註:如,JavaScript 中對字串的操作一定回傳了一個新字串,原始字串並沒有被改變)。我們稱這些類型的值為「原始值」。

布林類型(Boolean)

布林表示一個邏輯實體,可以有兩個值:true 和 false。

Null 類型

Null 類型只有一個值: null,更多詳情可查看 null 和 Null 。

Undefined 類型

一個沒有被賦值的變數會有個預設值 undefined,更多詳情可查看 undefined 和 Undefined。

數字類型

根據 ECMAScript 標準,JavaScript 中只有一種數字類型:基於 IEEE 754 標準的雙精度 64 位元二進位格式的值(-(263 -1) 到 263 -1)。它並沒有為整數給出特定的類型。除了能夠表示浮點數外,還有一些帶符號的值: Infinity,-Infinity 和 NaN (非數值,Not-a-Number)。

要檢查值是否大於或小於 /-Infinity,你可以使用常數 Number.MAX_VALUE 和 Number.MIN_VALUE。另外在 ECMAScript 6 中,你也可以透過 Number.isSafeInteger() 方法還有 Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER 來檢查值是否在雙精確度浮點數的值範圍內。超出這個範圍,JavaScript 中的數字不再安全了,也就是只有 second mathematical interger 可以在 JavaScript 數字類型中正確表現。

數字型別只有一個整數,它有兩種表示法: 0 可表示為 -0 和 0("0" 是 0 的簡寫)。在實踐中,這也幾乎沒有影響。例如 0 === -0 為真。但是,你可能要注意除以0的時候:

42 / +0; // Infinity
42 / -0; // -Infinity
登入後複製

字串類型

JavaScript的字串類型用來表示文字資料。它是一組16位元的無符號整數值的「元素」。字串中的每個元素佔據了字串的位置。第一個元素的索引為0,下一個是索引1,依此類推。字串的長度是它的元素的數量。

不同於類別 C 語言,JavaScript 字串是不可變更的。這意味著字串一旦被創建,就不能被修改。但是,可以基於對原始字串的操作來建立新的字串。例如:

取得一個字串的子字串可透過選擇個別字母或使用String.substr().兩個字串的連接使用連接運算元( ) 或String.concat().

注意程式碼中的「字串型別」!
可以使用字串來表達複雜的資料。以下是一些很好的性質:

容易連接建構複雜的字符串符
字串容易被調試(你看到的往往在字符串裡)
字符串通常是許多APIs的常見標準(input fields, local storage values, XMLHttpRequest當使用responseText等的時候回應) 而且他只能與字串一同使用。
按照慣例, 字串一般可以用來表達任何資料結構。這不是一個好主意。例如,使用分隔符,一個可以模仿一個列表(一個JavaScript的陣列可能更適合一些) 。不幸的是,當一個分隔符號在用於列表中的元素時,打亂了這個列表。一個轉義字符等。所有這些慣例都變成了一個不存在的維護負擔而沒有正確的工具使用。

表達文字資料和符號資料時候推薦使用字串。當表達複雜的資料時,使用字串解析和適當的縮寫。

符號類型

符號(Symbols)是ECMAScript 第6版新定義的。符號類型是唯一的且是不可修改的, 並且也可以用來作為Object的key的值(如下). 在某些語言當中也有類似的原子類型(Atoms). 你也可以認為為它們是C裡面的枚舉類型. 更多細節請看Symbol 和Symbol 。

物件Object

在 Javascript 裡,物件可以被視為一組屬性的集合。用物件字面量語法定義一個物件時,會自動初始化一組屬性。 (也就是說,你定義一個var a = "Hello",那麼a本身就會有a.substring這個方法,以及a.length這個屬性,以及其它;如果你定義了一個對象,var a = {},那麼a就會自動有a.hasOwnProperty及a.constructor等屬性和方法。)而後,這些屬性還可以被增減。屬性的值可以是任意類型,包括具有複雜資料結構的物件。屬性使用鍵來標識,它的鍵值可以是一個字串或符號值(Symbol)。

ECMAScript定義的物件中有兩種屬性:資料屬性和存取器屬性。

資料屬性
資料屬性是鍵值對,且每個資料屬性擁有下列特性:

資料屬性的特性(Attributes of a data property)

O(∩_∩)O哈哈~基礎還是很重要的。



#

以上是JavaScript常用資料型別的概念介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:segmentfault.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板