728x90
반응형

 

자바스크립트에서 객체란?

객체(Object)는 자바스크립트에서 키(key)값(value)으로 데이터를 저장하는 데이터 구조이다. 객체는 여러 속성(Property)을 가질 수 있으며, 각 속성은 고유한 키를 통해 접근할 수 있다.

 

1. 객체 생성

1-1. 기본적인 객체 생성

let student = {
    name: "John",
    age: 17,
    gender: "남자"
};

위의 예제에서는 객체 student을 생성한다. 객체를 만들 때는 중괄호({})를 사용하며, 속성과 값을 콜론(:)으로 구분하고, 각 속성과 값은 쉼표(,)로 구분한다.

1-2. 생성자 함수를 사용한 객체 생성

function Student(name, age, gender) {
  this.name = name;
  this.age = age;
  this.gender = gender;
}

let student1 = new Student("홍길동", 30, "남자");
let student2 = new Student("홍길순", 25, "여자");

생성자 함수를 사용하면 객체를 일괄적으로 생성할 수 있다.

 

2. 객체 요소 접근

객체의 속성에 접근하는 방법은 두 가지가 있다

let student = {
    name: "John",
    age: 17
};

// 1. 점 표기법(dot notation)
console.log(student.name);  // "John"
console.log(student.age);   // 17

// 2. 대괄호 표기법(bracket notation)
console.log(student["name"]);  // "John"
console.log(student["age"]);   // 17
  • 점 표기법은 객체의 속성에 접근할 때 가장 많이 사용하는 방법이다. 객체명.속성명 형태로 접근한다.
  • 대괄호 표기법은 속성명이 문자열이거나, 동적으로 속성명을 결정해야 할 때 유용하다. 예를 들어, 속성명이 변수로 주어질 때 사용한다..

3. 객체 메소드

자바스크립트는 객체를 다루기 위한 다양한 메소드를 제공한다. 이 메소드들은 객체의 속성을 다루거나, 객체를 조작할 때 매우 유용하다.

3-1. Object.keys()

객체의 모든 키(속성)를 배열로 반환한다.

let student = {
    name: "John",
    age: 17,
    grade: "11th"
};

let keys = Object.keys(student);
console.log(keys);  // ["name", "age", "grade"]

3-2. Object.values()

객체의 모든 을 배열로 반환한다.

let student = {
    name: "John",
    age: 17,
    grade: "11th"
};

let values = Object.values(student);
console.log(values);  // ["John", 17, "11th"]

3-3. Object.entries()

객체의 키-값 쌍을 2차원 배열 형태로 반환한다. 각 배열 요소는 [키, 값]의 형태이다.

let student = {
    name: "John",
    age: 17,
    grade: "11th"
};

let entries = Object.entries(student);
console.log(entries);
// [["name", "John"], ["age", 17], ["grade", "11th"]]

3-4. Object.assign()

하나 이상의 소스 객체에서 타겟 객체로 속성을 복사합니다. 타겟 객체가 반환된다.

타겟 객체와 소스 객체의 속성이 동일한 키를 가지는 경우, 타겟 객체의 속성이 덮어쓰여진다

let target = {name: "Jane"};
let source = {age: 18, grade: "12th"};

let student = Object.assign(target, source);
console.log(student);
// {name: "Jane", age: 18, grade: "12th"}

 

3-7. Object.hasOwnProperty()

특정 속성이 객체에 존재하는지 확인하고, 존재하면 true, 그렇지 않으면 false를 반환한다.

javascript코드 복사
let student = {
    name: "John",
    age: 17
};

console.log(student.hasOwnProperty("name"));  // true
console.log(student.hasOwnProperty("grade"));  // false

 

8. 객체 비교

let person1 = {
  name: "홍길동",
  age: 30,
  gender: "남자"
};

let person2 = {
  name: "홍길동",
  age: 30,
  gender: "남자"
};

console.log(person1 === person2);   // false
console.log(JSON.stringify(person1) === JSON.stringify(person2));   // true

객체를 비교할 때는 일반적으로 === 연산자를 사용할 수 없다. 대신 JSON.stringify() 함수를 사용하여 객체를 문자열로 변환한 후, 문자열 비교를 한다.

9. 객체 병합

객체 병합을 할 때는 전개 연산자(...)를 사용한다.

병합 시 같은 키가 여러 번 등장할 경우, 가장 나중에 병합된 객체의 값이 최종적으로 사용된다.

let person1 = {
  name: "홍길동",
  age: 30
};

let person2 = {
  gender: "남자"
};

let mergedPerson = {...person1, ...person2};

console.log(mergedPerson);   // { name: "홍길동", age: 30, gender: "남자" }

 


4. 객체를 순회하는 방법

객체의 속성들을 순회하면서 각 속성에 대해 작업을 수행할 수 있는 방법은 여러 가지가 있다.

1. for...in

for...in은 객체의 를 순회하는 반복문이다.

객체의 모든 속성을 순회하면서 키와 값을 다룰 때 유용하다.

let student = {
    name: "John",
    age: 17,
    grade: "11th"
};

for (let key in student) {
    console.log(key, student[key]);
}
// "name John"
// "age 17"
// "grade 11th"

 

 

728x90
반응형

'JavaScript' 카테고리의 다른 글

[JS] 반복문  (2) 2024.09.08
[JS] Map 사용 방법  (1) 2024.09.08
[JS] 1-1) JS 언어의 특징과 역사  (1) 2024.09.02
[JS] 헷갈리는 this 정리 (this 사용 방법)  (0) 2024.08.01
[JS] 화살표 함수 쓰는 방법과 사용 이유  (0) 2024.07.31

+ Recent posts