Skip to content

isPlainObject

检查给定值是否是一个普通对象。

普通对象是基本的 JavaScript 对象,例如 {}{ name: 'John', age: 30 }。它不是从类派生的,并且其原型要么是 Object.prototype,要么是 null。当你使用 toString 方法将其转换为字符串时,它将显示为 [object Object]

签名

typescript
function isPlainObject(value: unknown): value is Record<PropertyKey, any>;

参数

  • value (unknown): 要检查的值。

返回值

(value is Record<PropertyKey, any>): 如果该值是普通对象,则返回 true,否则返回 false

示例

typescript
isPlainObject({}); // true
isPlainObject([]); // false
isPlainObject(Object.create(null)); // true

class Foo {}
isPlainObject(new Foo()); // false
isPlainObject(new Date()); // false
isPlainObject(new Set()); // false
isPlainObject(new Map()); // false
isPlainObject(Buffer.from('hello, world')); // false
isPlainObject(Math); // false
isPlainObject(JSON); // false
isPlainObject(null); // false
isPlainObject(1); // false

性能对比

包大小性能
es-toolkit279 字节 (小 82.4%)1,505,684 次 (快 1.70×)
es-toolkit/compat435 字节 (小 72.5%)2,013,760 次 (快 2.28×)
lodash-es1,586 字节882,669 次