你知道typeof检测数据返回值都有哪些?

130 阅读1分钟

typeof 是一个 JavaScript 运算符,用于检测给定变量或表达式的数据类型。它返回一个表示数据类型的字符串。以下是 typeof 可能返回的字符串值及其对应的数据类型:

1. "undefined": 表示变量未定义或对象属性不存在。

```
javascript
typeof undefined;  // "undefined"
```

2. "boolean": 表示布尔值。

```
javascript
typeof true;  // "boolean"
```

3. "number": 表示数字,包括整数和浮点数。

```
javascript
typeof 42;     // "number"
typeof 3.14;   // "number"
```

4. "string": 表示字符串。

```
javascript
typeof "Hello";  // "string"
```

5. "bigint": 表示大整数。

```
javascript
typeof 10n;  // "bigint"
```

6. "object": 表示对象(包括数组和函数)。

```
javascript
typeof {};           // "object"
typeof [];           // "object" (数组也是对象)
typeof function(){}; // "object" (函数也是对象)
```

7. "symbol": 表示符号(ES6 引入的新数据类型)。

```
javascript
typeof Symbol();  // "symbol"
```

8. "function": 表示函数。

```
javascript
typeof function(){};  // "function"
```

注意:

  • typeof null 的结果是 "object"。这是 JavaScript 的一个已知问题,因为在 JavaScript 的早期版本中,null 被错误地认为是对象类型。
  • 对于引用类型(如数组和对象),typeof 只能告诉你它们是对象,而无法区分是数组还是其他类型的对象。要更详细地检测对象的类型,可以使用 Array.isArray() 和其他方法。