ES6 Start Symbol
eg:var a = { name: 'lucy'};
a.name = 'lili';
ES6는 고유한 값을 나타내는 새로운 원시 데이터 유형 Symbol을 도입했습니다.
새로운 지식을 다시 복습해 봅시다: 기본 데이터 형식은 6가지가 있는데 그것이 바로 Undefined, Null, 부울 값(Boolean), 문자열(String), 수치(Number), 대상(Object)입니다.
Symbol
Symbol
함수 전에는 new
명령을 사용할 수 없습니다. 그렇지 않으면 오류가 발생합니다.이는 생성된 Symbol이 객체가 아닌 원래 유형의 값이기 때문입니다.Symbol
함수는 하나의 문자열을 매개 변수로 받아들여 Symbol의 실례에 대한 설명을 나타낼 수 있는데 주로 컨트롤러에 표시하거나 문자열로 전환할 때 비교적 쉽게 구분하기 위한 것이다.//
var s1 = Symbol();
var s2 = Symbol();
s1 === s2 // false
//
var s1 = Symbol("foo");
var s2 = Symbol("foo");
s1 === s2 // false
Symbol 값은 다른 유형의 값과 연산할 수 없습니다.
속성 이름으로 Symbol
var mySymbol = Symbol();
//
var a = {};
a[mySymbol] = 'Hello!';
//
var a = {
[mySymbol]: 'Hello!'
};
//
var a = {};
Object.defineProperty(a, mySymbol, { value: 'Hello!' });
//
a[mySymbol] // "Hello!"
Symbol 값을 객체 속성 이름으로 사용할 때는 점 연산자를 사용할 수 없습니다.
var a = {};
var name = Symbol();
a.name = 'lili';
a[name] = 'lucy';
console.log(a.name,a[name]); //lili,lucy
Symbol 값이 등록 정보 이름으로 지정될 때 등록 정보는 비공개 등록 정보가 아닙니다.
이것은 자바의 보호된 속성과 약간 유사합니다. (보호된 속성과private의 차이: 클래스의 외부에서는 접근할 수 없고, 클래스 내의 하위 클래스는 보호된 속성을 계승할 수 있으며 보호된 속성은private를 계승할 수 없습니다.)
그러나 이곳의 Symbol은 클래스 외부에서도 접근할 수 있다. 단지
for...in
, for...of
순환에 나타나지 않고 Object.keys()
, Object.getOwnPropertyNames()
에 되돌아오지 않는다.그러나 지정된 객체의 모든 Symbol 속성 이름을 가져오는 Object.getOwnPropertySymbols
방법이 있습니다.Symbol.for(),Symbol.keyFor()
Symbol.for 메커니즘은 단일 모드와 유사합니다. 우선 전역에서 이 인자를 이름으로 하는 Symbol 값이 있는지 검색하고, 있으면 이 Symbol 값을 되돌려줍니다. 그렇지 않으면 이 문자열을 이름으로 하는 Symbol 값을 새로 만들고 되돌려줍니다.직접적인 Symbol과는 다른 점이 있습니다.
var s1 = Symbol.for('foo');
var s2 = Symbol.for('foo');
s1 === s2 // true
Symbol.keyFor 메서드는 등록된 Symbol 유형 값의 키를 반환합니다.실질적으로 Symbol 이 생성되었는지 확인합니다.
var s1 = Symbol.for("foo");
Symbol.keyFor(s1) // "foo"
var s2 = Symbol("foo");
Symbol.keyFor(s2) // undefined
내장된 Symbol 값
11가지 방법이 있는데 구체적으로 볼 수 있다http://es6.ruanyifeng.com/#docs/symbol
전재 대상:https://www.cnblogs.com/sker/p/5474591.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.