오늘은 객체에 사용할 수 있는 내장 메소드에 대해 물어보았다.
자바스크립트에서는 객체와 배열을 조작하기 위한 다양한 내장 메소드를 제공하고 있습니다.
다음은 그 중 몇 가지를 소개합니다:
- Object.keys(obj): 이 메소드는 객체의 모든 열거 가능한 속성의 이름들을 배열로 반환합니다.
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.keys(obj)); // ["a", "b", "c"]
// 객체의 키 값을 배열로 반환한다!
- Object.values(obj): 이 메소드는 객체의 모든 열거 가능한 속성의 값들을 배열로 반환합니다.
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.values(obj)); // [1, 2, 3]
// 객체의 밸류 값을 배열로 반환한다!! 유용할 듯
- Object.entries(obj): 이 메소드는 객체의 모든 열거 가능한 속성의 [key, value] 쌍의 배열을 반환합니다.
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.entries(obj)); // [["a", 1], ["b", 2], ["c", 3]]
// 객체의 키와 밸류 값 쌍을 각 배열에 담고, 그걸 또 배열에 담아서 반환해준다! 더 유용할 듯?
- Object.assign(target, ...sources): 이 메소드는 하나 이상의 출처 객체로부터 대상 객체로 속성을 복사할 때 사용합니다. 대상 객체를 반환합니다.
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const obj3 = Object.assign(obj1, obj2);
console.log(obj3); // { a: 1, b: 3, c: 4 }
// target : 원본이자 대상이 되는 객체
// sources : target 에다가 합칠 객체
// 위 예제에서 볼 수 있듯이 같은 키 값을 가진 속성이 있으면 sources 걸로 덮어씌운다 주의
- Object.hasOwnProperty(prop): 이 메소드는 객체가 특정 속성을 가지고 있는지를 나타내는 불리언 값을 반환합니다.
const obj = { a: 1, b: 2, c: 3 };
console.log(obj.hasOwnProperty('a')); // true
console.log(obj.hasOwnProperty('d')); // false
// 말그대로 객체에 특정 속성, 키값이 있는지 찾아서 있으면 true 없으면 false 반환한다.
// 이걸 그냥 많이 쓸 수도 있겠지만 prototype 어쩌구로 가면 골치 아플 것 같기도...
// toString() 을 안알려 주길래 추가로 물어봤따..
toString() 메소드는 객체를 문자열로 변환하여 반환합니다.
이 메소드는 JavaScript의 모든 객체에서 사용할 수 있습니다.
기본적으로 toString() 메소드는 [object Object]를 반환합니다:
const obj = {
name: "John",
age: 30,
city: "New York"
};
console.log(obj.toString()); // [object Object]
// 객체에 쓰는건 별 쓸모 없어보인다..
하지만 toString() 메소드는 종종 오버라이드(재정의)되어, 사용자 정의 객체에 대해 더 유용한 문자열 표현을 제공합니다.
예를 들어, 배열 객체에 대한 toString() 메소드는 배열의 모든 요소를 쉼표로 구분된 문자열로 변환하여 반환합니다:
const arr = [1, 2, 3, 4, 5];
console.log(arr.toString()); // "1,2,3,4,5"
// 배열을 쉼표 구분된 스트링으로
toString() 메소드를 사용자 정의 객체에 대해 재정의하려면, 다음과 같이 할 수 있습니다:
const person = {
firstName: "John",
lastName: "Doe",
toString: function () {
return this.firstName + " " + this.lastName;
},
};
console.log(person.toString()); // "John Doe"
이 예에서 toString() 메소드는 firstName과 lastName 속성을 합친 문자열을 반환합니다.
// 객체에는 함수도 담을 수 있다.. >충격<
// toString()은 원래 있는? 건데 위 처럼 쓰면 기능을 업그레이드? 할 수 있다
// 그래서 '재정의' 라고 한거다.
// 주의 : 객체 내에서 함수 만들 때 화살표 함수 쓰지말라..
'javascript' 카테고리의 다른 글
[자바스크립트 20] 배열 메소드 (0) | 2023.05.12 |
---|---|
[자바스크립트 19] 메소드와 함수의 차이 (0) | 2023.05.12 |
[자바스크립트 17] 배열(array) (0) | 2023.05.12 |
[자바스크립트 16] 객체(object) (1) | 2023.05.12 |
[자바스크립트 15] 함수(익명함수,화살표함수) (0) | 2023.05.08 |