一文帶你走進js數據類型與數據結構的世界
更新時間:2021年08月27日 17:27:07 作者:歐陽呀
這篇文章主要介紹了js-數據類型與數據結構,文章具有一定的參考學習價值,需要的朋友可以學習一下這篇文章中的內容
1. 什么叫動態(tài)類型
- JavaScript 是一種弱類型或者說動態(tài)語言。
- 我們不用提前聲明變量的類型,在程序運行過程中,類型會被自動確定。
- 這也意味著你可以使用同一個變量保存不同類型的數據
let a; // 初始不給任何類型 a = 11; // a此時是number類型 a = "二大爺"; // a 變成了字符串類型 a = true; // a 變成了布爾類型
實際應用過程中并不推薦這樣做,容易出現一些不可預知的錯誤
- 比如你兄弟忽然變成了女的,又很漂亮(睡還是不睡?)
- 比如你閨蜜忽然變成了男的,很帥(上還是不上?)
- 比如隔壁老王變成了你老婆…(老王自己變成綠帽?)
- …
- 綜上所述,數據類型一旦被確定,不要輕易篡改~~
2. 數據類型
- 你可能仍然以為JavaScript只有 6 種數據類型(這就是固有認知)
- 最新的 ECMAScript 標準定義了 8 種數據類型:
2.1 原始類型(6 種原始類型,使用 typeof 運算符檢查)
- undefined:typeof instance === “undefined”
- Boolean:typeof instance === “boolean”
- Number:typeof instance === “number”
- String:typeof instance === "string"
- BigInt:typeof instance === “bigint”(任意大的整數)
- Symbol :typeof instance === “symbol”
2.2 null 與 Object
- null: typeof instance === “object”
- typeof instance === “object”。
- 任何 constructed 對象實例的特殊非數據結構類型,也用做數據結構:(new Object,new Array,new Map,new Set,new WeakMap,new WeakSet,new Date),和幾乎所有通過 new 關鍵字創(chuàng)建的東西。
2.3 typeof 操作符重點說明
- typeof 操作符的唯一目的就是檢查數據類型。
- 如果我們希望檢查任何從 Object 派生出來的結構類型,使用 typeof 是不起作用的,因為總是會得到 “object”。
- 檢查 Object 種類的合適方式是使用 instanceof 關鍵字(數組與對象等),但即使這樣也存在誤差(目前沒有百分百準備的方法,很遺憾)

3. 原始值
3.1 原始值基本概念
- 除 Object 以外的所有類型都是不可變的(值本身無法被改變)。
- 例如,與 C 語言不同,JavaScript 中字符串是不可變的(JavaScript 中對字符串的操作一定返回了一個新字符串,原始字符串并沒有被改變),我們稱這些類型的值為“原始值”。
3.2 各類型說明
- 布爾類型:一個邏輯實體,可以有兩個值:true 和 false
- Null類型:只有一個值: null,就是啥也沒有
- Undefined類型:一個沒有被賦值的變量會有個默認值 undefined
- Number類型:沒有像Java一樣進一步細分類型,整數和浮點數都可以。還有一些帶符號的值:+Infinity,-Infinity 和 NaN (非數值,Not-a-Number)
- BigInt 類型:JavaScript 中的一個基礎的數值類型,可以用任意精度表示整數??梢园踩卮鎯筒僮鞔笳麛?,甚至可以超過數字的安全整數限制。BigInt是通過在整數末尾附加 n 或調用構造函數來創(chuàng)建的。
語法:BigInt(value);
value: 創(chuàng)建對象的數值??梢允亲址蛘哒麛?/p>
BigInt() 不是構造函數,因此不能使用 new 操作符
- String類型:字符串是不可更改的。這意味著字符串一旦被創(chuàng)建,就不能被修改。但是,可以基于對原始字符串的操作來創(chuàng)建新的字符串。
獲取一個字符串的子串可通過選擇個別字母或者使用 String.substr().
兩個字符串的連接使用連接操作符 (+) 或者 String.concat().
- Symbols類型:唯一的并且是不可修改的, 并且也可以用來作為Object的key的值
- Object類型:對象可以被看作是一組屬性的集合,用對象字面量語法來定義一個對象時,會自動初始化一組屬性。
屬性的值可以是任意類型,包括具有復雜數據結構的對象。屬性使用鍵來標識,它的鍵值可以是一個字符串或者符號值(Symbol)
以上就是一文帶你走進js-數據類型與數據結構的世界的詳細內容,更多關于js 數據類型與數據結構的資料請關注腳本之家其它相關文章!
相關文章
JavaScript將數組轉為對象與JSON對象字符串轉數組方法詳解
這篇文章主要介紹了JavaScript將數組轉為對象與JSON對象字符串轉數組方法詳解,需要的朋友可以參考下2022-10-10
JavaScript SetInterval與setTimeout使用方法詳解
本文講解了JavaScript SetInterval與setTimeout的區(qū)別,并用代碼示例演示了使用方法2013-11-11

