[JS] 객체 (1)

Yeongsan Son·2020년 12월 6일
0
post-thumbnail

이순신 장군이 프로그래밍을 했다면 이런 말을 했을 것 같다.

순신 曰 : 객체를 알면 살고, 객체를 모르면 죽을거야.

그럼, 이순신 장군님께서 중요하게 생각하시는 객체에 대해서 알아보자.

♾ 자바스크립트 언어의 거의 모든 것이 객체다.

🔎 객체의 종류

1. new 키워드로 정의된 불린
2. new 키워드로 정의된 문자열
3. new 키워드로 정의된 숫자
4. Date
5. Math
6. 정규표현식
7. 배열
8. 함수
9. 객체

위와 같이 원시 값을 제외한 자바스크립트의 거의 모든 것이 객체로 구분된다.

🔎 원시값의 종류

1. string
2. boolean
3. number
4. null
5. undefined

위 다섯 가지가 자바스크립트에서 원시값으로 대표되는 데이터 타입이다.

원시값의 특징은 객체처럼 프로퍼티나 메서드를 갖지 않으며, immutable 하다.

'immutable하다'라는건 원본 자료형의 값이 변하지 않는 성질을 말한다.

객체의 속성과 메서드

객체는 프로퍼티(속성)과 메서드로 구성되어 있다.

사람이란 객체를 예로들어 설명하자면, 사람은 이름, 나이, 키, 몸무게라는 속성을 가질 수 있고, '공부, 운동, 식사하다'라는 사람의 행동을 나타낼 수 있는 메서드를 가질 수 있다.

이와 같이, 어떤 객체의 정보를 나타내는 것을 속성이라 부르고, 객체의 동작을 표현하는 것을 메서드라고 표현할 수 있다.

person = {
  이름:
  나이::
  몸무게:
  공부하다: function() {}
  운동하다: function() {}
  식사하다: function() {}
}

✍︎ 객체 만들기

const john = {
  이름: "John",: 175,
  몸무게: 70,
  나이: 30,
}

자바스크립트에서 객체를 만드는 가장 쉬운 방법은 객체 리터럴을 사용하는 것이다.

객체리터럴이란 이름과 값이 쌍으로 '{이름: 값}' 중괄호 안에 들어가 있는 구조를 말한다.

🟡 mutable한 객체 🟡

const person = {
  firstName: "John",
  lastName: "Farnworth",
  age: 30,
  height: 175,
}

const john = person;
john.age = 31
console.log(person) //person의 age도 31로 바뀐다.

위의 예시 코드와 같이, john이라는 변수가 person에 할당해준 객체를 함께 참조하도록 설정해주었다. 그럼, 객체에서는 john이 참조하고 있는 객체의 프로퍼티 값을 수정해주게 되면 person이 참조하고 있는 객체 역시 같으므로 person을 통해서 프로퍼티 값을 수정하지 않았지만 같은 프로퍼티 값을 가지게 되는 mutable한 성질을 가지고 있다.

profile
매몰되지 않는 개발자가 되자

0개의 댓글