天天看點

JS-Learning | 資料類型(基本類型和引用類型的定義與檢測)基本資料類型引用類型

JavaScript變量

松散類型

的本質,決定了它隻是在特定時間用于儲存特定值的一個名字而已,可以了解為變量占了一個坑,具體填的是黃金還是泥土就要看自身造化了……

ECMAScript變量可能包含兩種不同資料類型的值:

基本類型值

引用類型值

。基本類型值指的是簡單的資料段,而引用類型值指那些可能由多個值構成的對象。

基本資料類型

基本資料類型有六種:Undefined、Null、Boolean、Number、String和Symbol。

這五種基本資料類型是按值通路的,因為可以操作儲存在變量中的實際的值。

基本資料類型比較簡單,這裡提供一些注意點:

  • Undefined類型:隻有一個值(即undefined),變量聲明但未對其初始化,該變量的值就是undefined。
  • Null類型:隻有一個值(即null),null值表示一個空對象指針。
  • Boolean類型:隻有兩個字面值(即true和false)。

    轉型函數Boolean()

  • Number類型:使用IEEE754格式來表示整數和浮點數值,其中有一個特殊數值NaN,用于表示一個本來要傳回數值的操作數但未傳回數值的情況。

轉型函數Number()、parseInt()、parseFloat()

  • String類型:轉型函數toString()、String()

    null和undefined沒有toString()方法,是以用String()函數可以傳回這兩個值的字面量。

typeof操作符

檢測給定變量的資料類型,對一個值使用typeof操作符可能傳回下列某個

字元串

  • “undefined”——如果這個值未定義
  • “boolean”——如果這個值是布爾值
  • “string”——如果這個值是字元串
  • “number”——如果這個值是數值
  • “object”——如果這個值是

    對象或null

  • “function”——如果這個值是函數

引用類型

引用類型的值是儲存在記憶體中的對象,JavaScript不允許直接通路記憶體中的位置,也就是說不能直接操作對象的記憶體空間。在操作對象時,實際上是在操作對象的引用而不是實際的對象。為此,引用類型的值是按引用通路的。

ECMAScript提供了很多原生引用類型:

  • Object類型
  • Array類型
  • Date類型
  • RegExp類型
  • Function類型
  • 基本包裝類型:3個特殊的引用類型(Boolean、Number和String)

    每當讀取一個基本類型值的時候,背景就會建立一個對應的基本包裝類型的對象,進而讓我們能夠調用一些方法來操作這些資料。自動建立的基本包裝類型的對象隻存在于一行代碼的

    執行瞬間

    ,然後立即被銷毀,是以我們不能在運作時為基本類型值添加屬性和方法。
  • 單體内置對象:Global對象和Math對象。

instanceof操作符

在檢測引用類型的值時,typeof操作符的用處就不大了。通常,我們并不是想知道某個值是對象,而是想知道它是什麼類型的對象。為此,ECMAScript提供了instanceof操作符。文法如下:

所有引用類型的值都是Object的執行個體,是以,在檢測一個引用類型值和Object構造函數時,instanceof操作符始終會傳回true。

繼續閱讀