ES6 의 Symbol 데이터 형식 에 대한 이해
5942 단어 JavaScript
Symbol
는 기본 데이터 형식 으로 ES6 에 도 입 된 새로운 데이터 형식 이다.목적 은 속성 명의 충돌 을 방지 하기 위해 대상 중의 모든 속성 명 이 유일무이한 것 을 보장 하 는 것 이다.
let s1 = Symbol('foo');
let s2 = Symbol('foo');
s1 === s2 // false
Symbol 형식 은 Symbol 인 스 턴 스 에 대한 설명 을 나타 내 는 문자열 매개 변 수 를 가 질 수 있 습 니 다.그래서 같은 묘사 의 두 Symbol 유형의 실례 도 같 지 않다.
대상 에서 어떻게 사용 합 니까?
let s = Symbol();
//
let a = {};
a[mySymbol] = 'Hello!';
//
let a = {
[mySymbol]: 'Hello!'
};
//
let a = {};
Object.defineProperty(a, mySymbol, { value: 'Hello!' });
//
a[mySymbol] // "Hello!"
Symbol 타 입 을 속성 명 으로 사용 하려 면
[]
을 사용 해 야 합 니 다.사용 하지 않 으 면 변수 이름과 같은 문자열 을 속성 명 으로 표시 합 니 다.Symbol 이 속성 명 으로 대상 을 옮 겨 다 닐 때 이 속성 은
for...in
, for...of
순환 에 나타 나 지 않 고 Object.keys()
, Object.getOwnPropertyNames()
, JSON.stringify()
되 돌아 오지 않 습 니 다.그러나 이것 은 개인 속성 도 아 닙 니 다.
Object.getOwnPropertySymbols()
방법 이 있 습 니 다. 지정 한 대상 의 모든 Symbol 속성 명 을 얻 을 수 있 습 니 다.이 방법 은 하나의 배열 을 되 돌려 줍 니 다. 구성원 은 현재 대상 의 모든 속성 명 으로 사용 되 는 Symbol 값 입 니 다.같은 Symbol 값 을 어떻게 사용 합 니까?
Symbol.for("bar") === Symbol.for("bar")
// true
Symbol.for()
방법 을 사용 하면 같은 매개 변수 가 만 든 변 수 는 같은 값 입 니 다.이 방법 으로 만 든 Symbol 변 수 는 인 자 를 전역 에 등록 하기 때 문 입 니 다.Symbol()
생 성 된 변수의 매개 변 수 는 전역 에 등록 되 지 않 습 니 다.let s1 = Symbol.for("foo");
Symbol.keyFor(s1) // "foo"
let s2 = Symbol("foo");
Symbol.keyFor(s2) // undefined
Symbol.keyFor()
을 사용 하면 전역 에 등 록 된 인자 의 이름 을 변수 로 찾 을 수 있 습 니 다.Symbol 내 장 된 속성 값
Symbol.hasInstance
: 다른 대상 이 instanceof
연산 자 를 사용 할 때 이 속성 명 이 가리 키 는 내부 방법 을 사용 합 니 다.Symbol.isConcatSpreadable
Symbol.species
Symbol.match
Symbol.replace
Symbol.search
Symbol.split
Symbol.iterator
Symbol.toPrimitive
Symbol.toStringTag
Symbol.unscopables
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.