728x90
자바스크립트에서 객체(Object)는 키-값 쌍으로 구성된 데이터 구조입니다. 객체를 다루기 위한 다양한 내장 함수들이 있습니다. 주요 객체 함수를 자세히 설명하겠습니다.
1. Object.keys()
Object.keys(obj)
: 객체의 열쇠(키)를 배열로 반환합니다.let obj = { a: 1, b: 2, c: 3 }; let keys = Object.keys(obj); // keys는 ["a", "b", "c"]
2. Object.values()
Object.values(obj)
: 객체의 값들을 배열로 반환합니다.let obj = { a: 1, b: 2, c: 3 }; let values = Object.values(obj); // values는 [1, 2, 3]
3. Object.entries()
Object.entries(obj)
: 객체의 [key, value] 쌍을 배열로 반환합니다.let obj = { a: 1, b: 2, c: 3 }; let entries = Object.entries(obj); // entries는 [["a", 1], ["b", 2], ["c", 3]]
4. Object.assign()
Object.assign(target, ...sources)
: 하나 이상의 출처 객체로부터 대상 객체로 속성을 복사합니다.let target = { a: 1 }; let source = { b: 2, c: 3 }; let result = Object.assign(target, source); // target은 이제 { a: 1, b: 2, c: 3 }
5. Object.freeze()
Object.freeze(obj)
: 객체를 동결하여 더 이상 수정할 수 없게 합니다.let obj = { a: 1 }; Object.freeze(obj); obj.a = 2; // 변경되지 않음, obj는 여전히 { a: 1 }
6. Object.seal()
Object.seal(obj)
: 객체를 봉인하여 기존 속성의 값을 변경할 수는 있지만, 속성을 추가하거나 삭제할 수 없게 합니다.let obj = { a: 1 }; Object.seal(obj); obj.a = 2; // 변경 가능, obj는 { a: 2 } delete obj.a; // 삭제 불가, obj는 여전히 { a: 2 }
7. Object.getOwnPropertyDescriptor()
Object.getOwnPropertyDescriptor(obj, prop)
: 객체의 속성에 대한 속성 설명자를 반환합니다.let obj = { a: 1 }; let descriptor = Object.getOwnPropertyDescriptor(obj, 'a'); // descriptor는 { value: 1, writable: true, enumerable: true, configurable: true }
8. Object.getOwnPropertyDescriptors()
Object.getOwnPropertyDescriptors(obj)
: 객체의 모든 속성에 대한 속성 설명자를 반환합니다.let obj = { a: 1, b: 2 }; let descriptors = Object.getOwnPropertyDescriptors(obj); // descriptors는 { a: { value: 1, writable: true, enumerable: true, configurable: true }, b: { value: 2, writable: true, enumerable: true, configurable: true } }
9. Object.defineProperty()
Object.defineProperty(obj, prop, descriptor)
: 객체의 특정 속성에 대해 새로운 속성 설명자를 정의합니다.let obj = {}; Object.defineProperty(obj, 'a', { value: 1, writable: false, enumerable: true, configurable: true }); obj.a = 2; // 변경되지 않음, obj는 여전히 { a: 1 }
10. Object.defineProperties()
Object.defineProperties(obj, props)
: 객체의 여러 속성에 대해 속성 설명자를 정의합니다.let obj = {}; Object.defineProperties(obj, { 'a': { value: 1, writable: true, enumerable: true, configurable: true }, 'b': { value: 2, writable: false, enumerable: true, configurable: true } }); obj.a = 3; // 변경 가능, obj는 { a: 3, b: 2 } obj.b = 4; // 변경되지 않음, obj는 여전히 { a: 3, b: 2 }
11. Object.create()
Object.create(proto, propertiesObject)
: 주어진 프로토타입 객체와 속성을 가지고 새로운 객체를 만듭니다.let proto = { a: 1 }; let obj = Object.create(proto); console.log(obj.a); // 1, obj는 프로토타입으로 proto를 가집니다.
12. Object.fromEntries()
Object.fromEntries(iterable)
: 키-값 쌍의 리스트를 객체로 변환합니다.let entries = [['a', 1], ['b', 2]]; let obj = Object.fromEntries(entries); // obj는 { a: 1, b: 2 }
13. Object.is()
Object.is(value1, value2)
: 두 값이 동일한지 비교합니다.console.log(Object.is(25, 25)); // true console.log(Object.is(NaN, NaN)); // true console.log(Object.is(0, -0)); // false
14. Object.hasOwn()
Object.hasOwn(obj, prop)
: 객체가 특정 속성을 자신의 속성으로 가지고 있는지 확인합니다.let obj = { a: 1 }; console.log(Object.hasOwn(obj, 'a')); // true console.log(Object.hasOwn(obj, 'b')); // false
이들 함수들은 자바스크립트 객체를 다루는 데 매우 유용합니다. 객체의 속성을 정의, 조회, 수정하는 등의 다양한 작업을 쉽게 수행할 수 있습니다. 각 함수를 실습하며 사용법을 익히면 객체를 더욱 효과적으로 활용할 수 있습니다.
728x90
반응형
'Software > JavaScript' 카테고리의 다른 글
Javascript 시작하기 - prototype 와 __proto__ (0) | 2024.08.03 |
---|---|
Javascript 시작하기 - 비동기 (0) | 2024.08.03 |
Javascript 시작하기 - 배열함수 (0) | 2024.08.03 |
Javascript 시작하기 - prototype (0) | 2024.08.02 |
Javascript 시작하기 - 고차함수 (0) | 2024.08.02 |