js有幾種數據類型?別再回答只有6種了!

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

前端如今已經發展到2021年了,你還在回答js只有6種數據類型嗎?javascript

類型總結

今天咱們就來盤盤 JavaScript 到底有幾種數據類型?前端

首先在 js 中數據類型分爲原始數據類型與引用數據類型java

原始數據類型安全

  • number
  • string
  • boolean
  • null
  • undefined
  • symbol (ES6)
  • bigint (ES10)

引用數據類型ide

  • object

在引用數據類型 object 中包括function/array/object對象

看到這裏咱們能夠發現總共是 8 種數據類型blog

ES6新增:Symbol

這種數據類型主要用於建立一個獨一無二的標識,不廢話,上代碼:ip

let obj = {};
obj.a = 1;
let a = Symbol();
obj[a] = 2; // 此時obj內部的a究竟是1仍是2呢?咱們能夠打印一下obj

obj {
 a: 1
 Symbol(): 2
 __proto__: Object
} // 此時咱們能夠發現定義的變量a彷佛只是一種標誌,並無具體的屬性名

Symbol在執行的時候能夠傳遞一個字符串,例如:文檔

let obj = {};
obj.a = 1;
let a = Symbol('a');
obj[a] = 2; 

obj {
 a: 1
 Symbol(a): 2 // 有字符串的Symbol更能區分每一個獨一無二的標識
 __proto__: Object

ES10新增:Bigint

咱們都知道在 javascript 中有極限數值的精度問題,舉個例子:字符串

let a = Number.MAX_SAFE_INTEGER; // 9007199254740991 最大安全整數
console.log(a + 1); // 9007199254740992
console.log(a + 2); // 9007199254740992
console.log(a + 1 === a + 2); // true
// 此時咱們能夠發現 a + 1 與 a + 2 計算出來的數值是同樣的,雖然能夠正常計算,可是已經失去了計算的價值

BigInt是一個內置對象,它提供了表示大於最大安全整數以外的方法, bigint 一般用於計算最大安全整數以外的數值:

BigInt(1) === BigInt('1') === 1n

關於BigInt的更多用法能夠參考 MDN官方文檔[1]

總結

JavaScript一共有 8 種數據類型,其中 7 種原始數據類型(基本數據類型),1 種引用值類型

參考資料

[1]

MDN官方文檔: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
相關文章
相關標籤/搜索