냠냠쿠 2024. 12. 30. 16:10
728x90

 

1. 객체 생성

//1. 객체 생성자 사용
let obj1 = new Object();

//2. 객체 리터럴 사용
let obj2 = {};

 

2. 객체 속성 

let person = {
    name: "홍길동 ",
    age: 30,
    hobby: "배드민턴",
    job: "FE Developer",
    extra: {},
    10: 20,
    "like cat": true,
  };

 

3. 프로퍼티 다루기

(1) 프로퍼티 접근

  // 1. 점 표기법
  let name = person.name; //존재하지 않는 프로퍼티를 가져오는 경우 Undefined 반환
  let age = person["age2"];  

  // 2. 괄호 표기법 (값이 동적으로 바뀔 때 많이 사용)
  let age = person["age2"];  //쌍따옴표 필수
  
  let property = "hobby";
  let hobby = person[property]; //person의 hobby value를 가져옴

 

(2) 프로퍼티 추가, 수정, 삭제 

// 프로퍼티 추가
person.job = "fe developer";
person["favoriteFood"] = "떡볶이";

// 프로퍼티 수정 
person.job = "educator";
person["favoriteFood"] = "초콜릿";

//프로퍼티 삭제 
delete person.job;
delete person["favoriteFood"];

 

(3) 프로퍼티 존재 유무 확인 (in연산자)

let result1 = "name" in person; // 존재하면 true 
let result2 = "cat" in person; // 존재하지 않으면 false

 

4. 상수 객체

- 아예 새로운 값을 할당하는 것은 문제가 되지만 저장되어 있는 것을 수정하는것은 문제가 되지 않음 

const animal = {
  type: "고양이",
  name: "나비",
  color: "black",
}; //값을 변경 할 수 없음 

//새로운 객체를 생성해서 할당 => 오류
animal = { a:1 } ; //error

//프로퍼티 추가,수정,삭제 가능
animal.age = 2; // 추가
animal.name = "까망이"; // 수정
delete animal.color; // 삭제

 

5. 메서드 

- 값이 함수인 프로퍼티

const person = {
  name: "홍길동",
  
  // 메서드 선언 (객체의 동작을 정의할 때 사용)
  sayHi() {
    console.log("안녕!");
  },
};

//호출 
person.sayHi();
person["sayHi"]();

 

728x90