객체

왕지호·2022년 11월 4일

배열의 객체를 알아보자!

객체란 무엇일까?
객체는 관련된 데이터와 함수(일반적으로 여러 데이터와 함수로 이루어지는데, 객체 안에 있을 때는 보통 프로퍼티와 메소드라고 부름)의 집합이다.

만약에 회원 주소록은 만들어본다고 가정해보자...

let userFirstName = "Steve";
let userLastName = "Lee";
let userEmail = "steve@codestates.com";
let userCity = "Seoul";
let user2FirstName = "Jason";
let user2LastName = "Jeong";
let user2Email = "jason@codestates.com";
let user2City = "Busan";

매번 이런식으로 여러개의 변수를 꼭 선언해야 할까? 만약 변수를 일일히 지정해 사용해서 주소록을 만든다면 시간도 많이 들고 비효율적이다.

그렇다면 이런식으로 배열을 써보는 것은 어떨까...?

let user = [
	"Steve",
	"Lee",
	"steve@codestates.com"
	"Seoul"
];

let user2 = [
	"Jason",
	"Jeong",
	"jason@codestates.com"
	"Busan"
];

오... 뭔가 더 축약되고 간단해보이긴 하다...
하지만 배열만 사용할 경우 문제가 생긴다. 위의 경우는 각 값이 하나의 변수로 묶여있긴 하지만, 이 경우에는 각 index가 어떤 정보를 갖고 있는지 미리 알고 있어야 한다. 또한, index로 접근할 경우 가독성도 떨어진다.

흠... 그렇다면 좀 더 좋고 효율적인 방법은 없을까?

이럴때 사용하는 것이 객체이다!

let user = {
	firstName: 'Steve',
	lastName: 'Lee',
	email: 'steve@codestates.com',
	city:'seoul'
}

객체는 키, 값(key-value pair) 쌍으로 이루어져 있다!
중괄호를 사용하고, 키 값 쌍으로 사용해서 쉼표로 구분한다.


객체를 사용하는 방법은 두 가지가 있다.

  • 방법 1: Dot notation →정해진 키 name이 있을때만 사용 가능하다
  • 단점: 동적인 변수는 못 담는다
let user = {
	firstName: 'Steve',
	lastName: 'Lee',
	email: 'steve@codestates.com',
	city:'seoul'
};

user.firstName; // Steve
user.city; // Seoul
  • 방법 2: Bracket notation →문자열 형식으로 써야한다
  • 키 값이 변수일 때 bracket notation 을 쓴다
let user = {
	firstName: 'Steve',
	lastName: 'Lee',
	email: 'steve@codestates.com',
	city:'seoul'
};

user['firstName']; // Steve
user['city']; // Seoul

-------------
user[lastName] // reference error:content not defined -> 정의되지 않았다
// -> lastName을 지금 키 값으로 보는게 아니라 변수라고 인식
//lastName이라는 변수가 있으면 사용 가능!

dot/bracket notation을 이용해 값을 추가할 수도 있다!

let tweet = {
	writer: "stevelee"
	createdAt: "2019-09-10 12:03:33"
	content: "프리코스 재밌어요!"
};

tweet["category"] = "잡담";
tweetisPublic = true;
tweet.tags = ["코드스테이츠", "프리코스"];

delete 키워드를 이용해 삭제도 가능하다!

let tweet = {
	writer: "stevelee"
	createdAt: "2019-09-10 12:03:33"
	content: "프리코스 재밌어요!"
};

//createAt 키-값 쌍을 지운다
delete tweet.createdAt;

//tweet은 다음과 같게 된다
// { writer: "stevelee", content: "프리코스 재밌어요!" }

in 연산자를 이용해 해당 키가 있는지 확인도 가능하다!

let tweet = {
	writer: "stevelee"
	createdAt: "2019-09-10 12:03:33"
	content: "프리코스 재밌어요!"
};

"content" in tweet; //true
"updateAt" in tweet; //false
profile
개발 공부하는 코린이!

0개의 댓글