"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > JS의 기호와 객체♥

JS의 기호와 객체♥

2024-11-08에 게시됨
검색:975

Symbols and Objects in JS♥

기호 데이터 유형

Symbol은 JS의 데이터 유형입니다. 일반적으로 Javascript에서 고유 키와 숨겨진 객체 키를 생성하는 데 사용됩니다.

기호에는 두 가지 유형이 있습니다.

  1. 로컬 기호 - 전역 기호 레지스트리에 등록되지 않으며 동일한 설명자라도 값이 고유합니다.
  2. 전역 기호 - 전역 기호 레지스트리에 등록되어 있으며 값이 고유하지 않습니다.

전역 기호 레지스트리: 전역 기호 레지스트리는 Symbol.for를 사용하여 생성된 기호가 저장되는 공간입니다.

통사론
아래 예에서 "john"은 설명자이고 key_one과 key_two는 기호입니다.

const key_one = Symbol("john"); //local symbol
const key_two = Symbol.for("john"); //global symbol
console.log(typeof key_one) // symbol
console.log(typeof key_two); //symbol

주요 차이점

동일한 값의 설명자는 지역 기호에서 동일하지 않습니다.

앞서 말했듯이 설명자가 지역 기호에서 동일하더라도 모든 기호는 고유합니다. 검증해 보겠습니다.


const key_one = Symbol("john");
const key_two = Symbol("john");
key_one == key_two // false
key_one === key_two //false

동일한 값의 설명자는 전역 기호에서 동일합니다.

const key_one = Symbol.for("foo");
const key_two = Symbol.for("foo");
console.log(key_one === key_two); //true

사물과 상징에 관한 몇 가지 사실

  1. 기호는 문자열로 변환되지 않습니다.
  2. for...in 루프를 사용하여 두 기호에 모두 액세스할 수 없습니다.
  3. Object.keys() 속성을 사용해도 두 기호에 모두 액세스할 수 없습니다.
  4. 객체의 모든 키는 문자열 짝수로 변환됩니다.
  5. Object.getOwnPropertySymbols() 함수를 사용하여 객체의 모든 기호를 볼 수 있습니다.


const zero = Symbol("0");
const temp = {
 0:"zero",
 1:"one",
 [zero]:"zero",
 1.1:"one one",
}
const keys = Object.keys(temp); //["0","1","1.1"]
console.log(temp[1.1]) // one one
console.log(Object.getOwnPropertySymbols(temp)) // [Symbol(0)]

Symbol.for()에서 설명자를 얻는 방법

Symbol.keyFor(symbol)를 사용하면 전역 기호 설명자를 얻을 수 있습니다.

const key_one = Symbol.for("john")
Symbol.keyFor(key_one) // "john"
typeof Symbol.keyFor(key_one) //string

dev.to와 linkedin ?에서 저를 지원해 주세요. 타이?

릴리스 선언문 이 글은 https://dev.to/aryan015/symbols-and-objects-in-js-3ko7?1 에서 복제되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3