前言: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'