JavaScript中的類型及其判斷方法

內置類型

JavaScript有七種的內置類型:

  1. 空值(null)
  2. 未定義(undefined)
  3. 布爾值(boolean)
  4. 數學(number)
  5. 字符串(string)
  6. 對象(object)
  7. 符號(symbol)

其中除了對象之外,其它六種統稱為基本類型

如何進行類型判斷

使用typeof

使用typeof進行類型判斷的返回值是該類型的字符串值,返回值只能為"object""number""undefined""string""boolean""symbol""function"其中一個。可以注意到的是,這些返回值跟JavaScript的內置類型不是一一進應的。
缺少了null,而多了function

與內置類型一一對應的就不詳細說了。重點關注nullfunction

對於null比較特殊,這算一個JavaScript歷史悠久的一個Bug,是因為object的底層實現中頭三位都是0,而null的底層實現直接是全0,因此typeof在判斷null才會誤判為object

1
console.log(typeof null); // object

function屬於object的子類型,屬於一個特例吧。

1
2
3
function a() {}

console.log(typeof a); // function

對於其它object的子類型,例如數組,都會直接返回object

1
2
3
const a = [1, 2, 3];

console.log(typeof a); // object

其它的判斷方法還有instance ofconstructorObject.prototype.toString.cal等方法,之後再詳細再說。

值和類型

JavaScript中的變量是沒有類型的。只有值才有類型,變量可以隨時持有任何類型的值。

1
2
3
4
5
let a = 42;
console.log(typeof a); // "number"

a = true;
console.log(typeof a); // "boolean"
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×