写在前面
前面有写过,JS 的数据类型分为两大类,基本数据类型(值类型)和引用数据类型,基本数据类型有六种,分别是 Number、String、Boolean、Symbol、Undefined、NULL,引用数据类型只有一个就是对象 Object,JS 在对象的基础上又进一步内置了更多的对象类型,如数组、函数、日期等。
1. typeof
typeof 是 JS 中的一个操作符,用于判断一个操作数的类型,其返回值是一个字符串。
语法为:typeof operand(操作数)
console.log(typeof 42);
// expected output: "number"
console.log(typeof 'blubber');
// expected output: "string"
console.log(typeof true);
// expected output: "boolean"
console.log(typeof undeclaredVariable);
// expected output: "undefined";
typeof 的返回值总共有8个,但具体又不是一一对应的,如下:
- 四种基本数据类型返回对应的全小写字符串,即 String 类型返回 “string”,Number 类型返回 “number”,Boolean 类型返回 “boolean”,Symbol 类型返回 “symbol”。
- 两个空数据类型中, Undefined 类型返回 “undefined”,NULL 类型返回 “object”。
- 引用数据类型中对象又分为几个特别情况:Function 对象类型返回 “function”,除此以外的其他对象都是返回 “object”。
- 还有一个 BigInt 对象,使用 typeof 操作符会返回 “bigint”。
因此记忆特例,对于 typeof 操作符,可以判断出对象中的 Function 函数对象和 BigInt 长整型对象,判断不出 NULL ,其他是与数据类型一一对应。
2. instanceof
instanceof 是 JS 中的一个运算符,用于检测某个实例的原型链中是否含有某个构造函数的 Prototype 属性对象。
语法为:object instanceof constructor
其返回值为一个Boolean值,为 true 或 false