[Javascript] Object 와 Symbol

Jin Lee·2022년 1월 25일
0
post-thumbnail

다른 언어의 딕셔너리와 유사하게 사용 가능하며 key, value, property를 갖는다.

다음과 같은 object가 있다고 했을 때 접근, 추가, 삭제 방법을 알아보자

const superman = {
  name : "clark",
  age : 33,
}

접근

superman.name // "clark"
superman["age"] // 33

추가

superman.gender = "male";
superman["hairColor"] = "black";

삭제

delete superman.hairColor;

단축 프로퍼티

const name = "clark";
const age = 33;

const superman = {
  name : name,
  age : age,
}

위의 코드는 아래의 코드와 동일한 의미를 가진다, key 값과 사용한 변수명이 같다면 아래와 같이 단축해서 사용할 수 있다.

const name = "clark";
const age = 33;

const superman = {
  name,
  age,
}

프로퍼티 존재 여부 확인

superman.birthDay; // undefined
"birthDay" in superman; // false
"age" in superman; // true

생성자 함수
비슷한 객체를 여러개 생성하기 쉬워짐

computed property

let a = "age";
const user = {
  name : "Mike",
  [a] : 30 // age : 30
}

object 에서 사용 가능한 몇가지 method

object.assign() : 객체 복제

const user = {
  name : "Mike",
  age : 30
}

const cloneUser = user; // 객체가 복사되는 것이 아니라 참조 값만 복사되어 들어간다
const newUser = object.assign({}, user); // {} 빈객체이자 초기값 두번째 매개변수 부터 들어온 값들이 초기값에 병합되는데 초기값이 비어있으므로 결과적으로는 복제 된다

object.keys() : 키 배열 반환
object.values() : 값 배열 반환

Symbol

유일한 식별자를 만들때 사용

const a = Symbol();
const b = Symbol();

console.log(a)
Symbmol()

console.log(b)
Symbol()

a === b; // false
a == b; // flase

const id = Symbol("id"); // Symbol 에 대한 설명 가능, 디버깅시 유용

Symnol은 유일성이 보장되기 때문에 아래와 같은 결과를 갖는다.

const id = Symbol("id");
const id2 = Symbol("id"); // 이렇게 id를 같게 만들어도

id === id2 // false
id == id2 // false

ref)
1. https://www.youtube.com/watch?v=KF6t61yuPCY

profile
깃허브 : https://github.com/jinlee9270

0개의 댓글