객체

왕지호·2022년 11월 4일
0

배열의 객체를 알아보자!

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

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

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개의 댓글