前言:JS 基礎類型就 8 種,這是官方確定的,毋庸置疑。其中原始類型 7 種,對象類型 1 種。而 typeof 關鍵字是用來判斷數據是屬于什么類型的。
1. 原始類型
Number、Boolean、String、BigInt、symbol、Undefined、null
typeof 18; // 'number'
typeof true; // 'boolean'
typeof "yqcoder"; // 'string'
// BigInt 表示大于 2^53 - 1 的整數
typeof BigInt(1728371927189372189739217); // 'bigint'
// Symbol 函數返回的值都是唯一的
typeof Symbol(); // 'symbol'
typeof undefined; // 'undefined'
// 關于 null 類型是 'object',這是設計缺陷,不信你去問作者
typeof null; // 'object'
2. 對象類型
只有 Object 一種,沒有什么 Array,Function,但是為什么通過 typeof 判斷,又有 object、function 這兩種結果呢。這是因為,函數的本質是一個可以被調用的對象,因此在數據類型的角度來說函數就是對象。所有用 typeof 判斷,就可以得到函數對象,和非函數對象。
typeof {}; // 'object'
typeof function () {}; // 'function'