프로그래밍 언어/JavaScript

[자바스크립트 필기] #5 - 객체 리터럴

SpaceCowboy 2021. 7. 25. 01:57

 

*이 필기는 웹 프로그래밍 튜토리얼에서 보고 작성합니다. 

 

1. 객체란?

  • 원시 타입은 단 하나의 값만 나타냄
  • 객체 타입은 다양한 값을 하나의 단위로 구성한 자료구조 
  • 원시 값은 변경 불가능한 값
  • 객체는 변경 가능한 값 

프로퍼티는 key와 value로 구성된다. 

모든 값이 프로퍼티 value가 될 수 있는데 프로퍼티 value가 함수일 경우, method라고 부른다. 

따라서 객체는 프로퍼티와 메서드로 구성된 집합체이다.

 

2. 객체 리터럴에 의한 객체 생성

다양한 객체 생성 방법이 지원된다. 

  • 객체 리터럴 - 가장 일반적이고 간단한 방법
  • Object 생성자 함수
  • 생성자 함수
  • Object.create 메서드
  • 클래스
//객체 리터럴 생성법
var person = {
	name: 'lee',
    sayHello: function () {
    	console.log(`Hello ${this.name}`);
    }
}; // <-------- 세미콜론을 붙인다.

이 외의 방법은 모두 함수를 통해 객체를 생성한다.

 

3. 프로퍼티 

프로퍼티는 키와 값으로 구성된다. 

var person = {
	name: 'lee',
    age: 20
};

위 와 같이 프로퍼티를 나열할 때는 쉼표(,)로 구분한다. 

 

식별자 네이밍 규칙을 따르지 않으면 프로퍼티 키에 반드시 따옴표를 써야한다.

 

4. 프로퍼티 접근

접근하는 방법은 두 가지

  • 마침표 프로퍼티 접근 연산자(.) 
  • 대괄호 프로퍼티 접근 연산자([...]) - 대괄호 안에 따옴표로 감싸야한다. 
var person = {
	name: 'Lee'
};

console.log(person.name); //Lee
console.log(person['name']); //Lee

이 외에 자바스크립트에서 사용 가능한 유효 이름이 아니라면, 반드시 대괄호 접근법을 선택해야 한다. 

 

5. 프로퍼티 값 갱신 

이미 존재하는 프로퍼티에 value를 할당하면 프로퍼티 value가 갱신된다.

var person = {
	name: 'Lee'
};

//갱신
person.name = 'Kim';

console.log(person.name); //Kim

 

6. 프로퍼티 동적 생성 & 삭제 

  • 존재하지 않는 프로퍼티에 값을 할당하면 프로퍼티가 동적으로 생성되어 추가되고 값이 할당된다. 
  • delete 연산자는 객체의 프로퍼티를 삭제한다. 
var person = {
	name: 'Lee'
};

person.age = 20;

console.log(person); 
// {name: "Lee", age: 20}

 

var person = {
	name: 'Lee'
};

person.age = 20; //동적 생성 

delete person.age; //age 프로퍼티 존재 -> 삭제 가능 
delete person.address; //address 프로퍼티 존재 X -> 삭제 불가능 & 무시됨

console.log(person); // {name: "Lee"}

 

여기까지 입니다 - 틀린 점이 있다면 꼭 지적해주세요!