Skip to content

isPlainObject

주어진 값이 순수 객체(Plain object)인지 확인해요.

순수 객체는 {}{ name: 'John', age: 30 } 같은 단순한 JavaScript 객체를 말해요. 클래스에서 만들어지지 않고, 프로토타입은 Object.prototype이나 null이에요. toString 메서드를 호출해서 문자열로 변환될 때는 [object Object]로 나타나요.

인터페이스

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

파라미터

  • value (unknown): 검사할 값.

반환 값

(value is Record<PropertyKey, any>): 값이 순수 객체이면 true.

예시

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 회

MIT 라이선스에 따라 배포됩니다.