[JavaScript] 객체

문규찬·2021년 8월 26일
0
post-thumbnail

-Object

자료형에서 하나의 데이터만 담을수 있는 '원시형'과 달리 객체는 다양한 데이터를 담을 수 있습니다. key로 구분된 데이터 집합이나 복잡한 개체(entity)를 저장할 수 있습니다.

중괄호 안에는 ‘키(key): 값(value)’ 쌍으로 구성된 프로퍼티(property) 를 여러 개 넣을 수 있는데, 키엔 문자형, 값엔 모든 자료형이 허용됩니다. 프로퍼티 키는 ‘프로퍼티 이름’ 이라고도 부릅니다.

⭐️ 객체를 서랍장에 비유하면 이해하기 쉽다
1. 서랍장 안의 파일은 프로퍼티
2. 각가의 파일에 붙어있는 이름표는 프로퍼티의 key

- 빈 객체를 생성하는 두가지 방법

1️⃣ let user = new Object(); // '객체 생성자' 문법
2️⃣ let user = {};  // '객체 리터럴' 문법

{...} 중괄호를 사용하여 객체를 선언하는 것을 객체 리터럴(object literal) 이라 합니다. 주로 이 방법으로 객체를 생성!

let user = {
name : "moon",   // 첫번 째 프로퍼티
age : 32  // 두번 째 프로퍼티
}

user라는 객체(서랍장) 에 두개의 프로퍼티가 (파일) 들어있습니다.

  • name,age - 프로퍼티 key는 프로퍼티 '이름' 혹은 '식별자' 라고 부릅니다.
  • "moon", 32 - 프로퍼티 값

  1. User객체의 key에 복수의 단어는 ""로 묶어줍니다.
  2. user 객체에 점표기법으로 접근 가능합니다.
  3. user 객체에 user.isAdmin = true 의 불리언 값을 추가하였습니다.
  4. age를 삭제합니다.

- 대괄호 표기법

'점’은 키가 '유효한 변수 식별자’인 경우에만 사용할 수 있습니다. 유효한 변수 식별자엔 공백이 없어야 합니다. 또한 숫자로 시작하지 않아야 하며 $와 _를 제외한 특수 문자가 없어야 합니다.

키가 유효한 변수 식별자가 아닌 경우엔 점 표기법 대신에 '대괄호 표기법(square bracket notation)'이라 불리는 방법을 사용할 수 있습니다. 대괄호 표기법은 키에 어떤 문자열이 있던지 상관없이 동작합니다.

let user = {
name : "moon",
age: 32,
}

user["location"]="korea"

console.log(user) // 객체 안에 location : "korea" 프로퍼티가 추가됩니다.

대괄호 표기법을 사용하면 아래 예시에서 변수를 키로 사용한 것과 같이 문자열뿐만 아니라 모든 표현식의 평가 결과를 프로퍼티 키로 사용할 수 있습니다.

⭐️ 계산된 프로퍼티

객체를 만들 때 객체 리터럴 안의 프로퍼티 키가 대괄호로 둘러싸여 있는 경우, 이를 계산된 프로퍼티 라고 합니다.

let fruit = prompt("어떤 과일을 구매하시겠습니까?", "apple");
let bag = {};

// 변수 fruit을 사용해 프로퍼티 이름을 만들었습니다.
bag[fruit] = 5;

===> bag={apple: 5}

⭐️ 단축 프로퍼티

1번은 식별자와 파라미터의 구분을 알아보려고 작성해보았습니다 (헷갈림...)
2번은 단축 프로퍼티로 name 만 작성하여도 name:name과 같습니다.

0개의 댓글