본문 바로가기
  • 살짝 구운 김 유나
Web/JavaScript

JavaScript 기초- Object

by yunae 2022. 10. 19.

Object

: 객체는 속성의 집합이며, 중괄호 내부에 key와 value 쌍으로 표현

  • key는 문자열 타입만 가능 -> 띄어쓰기 등의 구분자가 있으면 따옴표로 묶어서
  • value는 모든 타입 가능
  • 객체 요소 접근은 점(.) 또는 대괄호([])로 가능 -> key 이름에 띄어쓰기 값은 구분자가 있으면 대괄호 접근만 가능
const myInfo = {
  name : 'Tom',
  phoneNumber: '123456', 
  'apple product' : {
    airpot : 'airpot pro',
    iphone : '12',
  },
}

console.log(myInfo.name)       // Tom
console.log(myInfo['name'])    // Tom
// console.log(myInfo.'apple product')  // 불가능
console.log(myInfo['apple product'])     // { airpot: 'airpot pro', iphone: '12' }
console.log(myInfo['apple product'].iphone)  // 12

 

 

 

 

객체 관련 문법

 

1. 속성명 축약

: 객체를 정의할 때 key와 할당하는 변수의 이름이 같으면 축약 가능

const clothes = ['shirt', 'skirt', 'pants']
const items = ['hat', 'watch']

const shop = {
  // clothes : clothes,
  clothes,
  // items : items,
  items,
}
console.log(shop)    // { clothes: [ 'shirt', 'skirt', 'pants' ], items: [ 'hat', 'watch' ]}

 

 

2. 메서드명 축약

: 메서드 선언 시 function 키워드 생략 가능

const obj1 = {
  greeting : function () {
    console.log('hello!')
  }
}

const obj2 = {
  greeting() {
    console.log('hello!')
  }
}

obj1.greeting()  // hello!
obj2.greeting()  // hello!

 

 

3. 계산된 속성명 사용하기

: 객체를 정의할 때 key의 이름을 표현식을 이용하여 동적으로 생성 가능

const key = 'country'
const value = ['한국', '캐나다', '미국', '중국']

const obj3 = {
  [key] : value,
}

console.log(obj3)          // { country: [ '한국', '캐나다', '미국', '중국' ] }
console.log(obj3.country)  // [ '한국', '캐나다', '미국', '중국' ]

 

4. 구조 분해 할당

: 배열 또는 객체를 분해하여 속성을 변수에 쉽게 할당할 수 있는 문법

const myInfo = {
  name : 'yuna kim',
  userId : 'Udragon',
  phoneNumber : '010-1234-1234',
  email : 'dragon@email.com'
}

// const name = myInfo.name
// const userId = myInfo.userId
// const phoneNumber = myInfo.phoneNumber
// const email = myInfo.email

const { name } = myInfo
const { userId } = myInfo
const { phoneNumber } = myInfo
const { email } = myInfo

// 여러개도 가능
const { name, userId } = myInfo

 

 

5. Spread syntax ( ... )

: 배열과 마찬가지로 전개구문을 사용해 객체 내부에서 객체 전개 가능

- 얕은 복사에 활용 가능

const obj = {b: 2, c: 3, d: 4}
const newObj = {a: 1, ...obj, e: 5}

console.log(newObj)   // {a: 1, b: 2, c: 3, d: 4, e: 5}

 

 

 

 

 

JSON(JavaScript Object Notation)

: key-value 형태로 이루어진 자료 표기법

- JavaScipt의 Object와 유사한 구조를 가지고 있지만 Object 는 그 자체로 타입이고, JSON은 형식이 있는 문자열

즉, JSON을 Object로 사용하기 위해서는 변환 작업 필요

 

const jsonData = {
  coffee : 'latte',
  iceCream : 'vanilla'
}

// Object => JSON
const objToJson = JSON.stringify(jsonData)
console.log(objToJson)          // {"coffee":"latte","iceCream":"vanilla"}
console.log(typeof objToJson)   // string (JSON은 문자열)


// JSON => Object
const jsonToObj = JSON.parse(objToJson)
console.log(jsonToObj)          // { coffee: 'latte', iceCream: 'vanilla' }
console.log(typeof jsonToObj)   // object

-> 출력에는 차이가 없지만 형변환이 되었음!

 

 

 

 

 

 

'Web > JavaScript' 카테고리의 다른 글

JavaScript - 동기와 비동기  (0) 2022.10.26
JavaScript 심화 - Event  (0) 2022.10.24
JavaScript 심화 - DOM  (0) 2022.10.24
JavaScript 기초 - Array  (0) 2022.10.19
JavaScript 기초  (0) 2022.10.19

댓글