您好,登錄后才能下訂單哦!
這篇文章主要介紹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)
以上是“JavaScript常用數據類型的概念是什么”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。