Study/JavaScript

객체의 기초 1.객체 리터럴

2022. 1. 12. 13:53

객체

  • 객체는 프로퍼티의 집합이며 프로퍼티는 으로 구성된다.
  • 프로퍼티 값이 함수일 경우, 일반 함수와 구분하기 위해 메서드(method)라고 부른다.
var card = {
	card1: 10, // 프로퍼티
	card2: 20  // 프로퍼티
}
// card1, card2 : 프로퍼티 이름
// 10, 20 : 키

 

객체 리터럴

객체 리터럴은 객체를 생성하는 방법중에 하나이고, 가장 간단하다.

위 코드에서 {...}이 부분이 객체 리터럴이다.

 

프로퍼티 접근

프로퍼티의 값을 읽거나 쓸때는 마침표(.) 연산자 또는 대괄호[] 연산자를 사용한다.

card.card1 //10
card['card2'] //20
// 대괄호를 써서 접근할 경우에는 ''안에 감싸주어야 한다.
// 그렇지 않으면 card2란 변수의 값으로 인식하기 때문이다.

 

프로퍼티 값 갱신, 생성, 삭제

  • 갱신

이미 존재하는 프로퍼티의 값을 수정할 수 있다.

card.card1 = 100 
card.card1 // 100

  • 생성

존재하지 않는 프로퍼티의 값을 할당하면 프로퍼티가 생성된다.

card.card3 = 200
card.card3 // 200
  • 삭제

delete연산자를 사용하여 프로퍼티를 삭제할 수 있다.

delete card.card3; 

 

in 연산자로 프로퍼티가 있는지 확인하기

in 연산자를 사용하면 객체에 특정 프로퍼티가 있는지 확인이 가능하다.

console.log('card1' in card); // true
console.log('card100' in card); // false

 

참조 타입

원시 타입과는 다르게 참조 타입은 값을 변수에 넣어주는 것이 아니라 값을 참조하는 것

var objA = {
	value: 50
}

var objB = objA;

console.log(objA.value); // 50
console.log(objB.value); // 50

objB.value = 100;

console.log(objB.value); // 100
console.log(objA.value); // 100

위와 같이 objA 변수와 objB 변수가 동일한 객체를 가르키는 참조값을 가지게 되어 같은 값을 출력하게 된다.