>  기사  >  웹 프론트엔드  >  JS의 기호와 객체♥

JS의 기호와 객체♥

Linda Hamilton
Linda Hamilton원래의
2024-10-11 18:38:02693검색

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 ?에서 저를 지원해 주세요. 타이?

위 내용은 JS의 기호와 객체♥의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.