ES6 symbol
그러나 다른 곳에서는 안 됩니다. es6는 Symbol의 일곱 번째 데이터 형식을 추가했습니다.
객체로 구성할 수 있는 속성
그것은 유일무이한 값을 나타낸다.
Symbol 유형에 속하는 모든 속성 이름은 고유하므로 다른 속성 이름과 충돌하지 않습니다.
let s = Symbol();
typeof s // "symbol"
위 코드에서 변수
s
유일무이한 값이다.
typeof
연산자의 결과, 변수 표시
s
문자열과 같은 다른 유형이 아닌 Symbol 데이터 유형입니다.
이것은 new로 만들 필요가 없고, 문자열을 매개 변수로 받아들일 수도 있습니다.
실례에 대한 묘사를 나타낸다.
var s1 = Symbol('foo');
s1 // Symbol(foo)
//이전 js에서 대상을 대상으로 삼을 수 없는 속성 이름//symbol은 새로운 데이터 형식을 실현했습니다. es6에서 7개가 있습니다./클래스가 생성되지 않았을 때 new가 직접 Symbol () 이 필요하지 않습니다.//모든 symbol은 유일무이합니다. 설명vars=Symbol () 이 지정되지 않았더라도.var s2=Symbol();//서로 다른 console.log(s===s2);
//symbol은 부울 값으로 변환할 수 있으며 값if(s3) {console.log ('true')}로 변환할 수 없습니다.
//속성 이름으로 Xx를 사용할 수 없습니다.symobl에서 var obj={}//를 정의하려면 [symbol] obj[s]='cc'obj[s2]='bb'obj[s3]='cc'//[XX]: var obj2={[s]:function() {console.log('aa')}
//사용 시 obj[XX] console.log(obj[s]) obj2[s]()
//증강 대상 쓰기 var obj3={[s] () {console.log ('aa')}//이것은 이전 대상의 쓰기입니다.var obj4={ [s]:function(){ console.log('aa') } } obj3[s]()
//for('aa')는 같은 값을 반환할 수 있습니다.var a=Symbol.for('aa'); var b=Symbol.for('aa'); console.log(a===b);
내장된 symbol 값
ES6는 자신이 사용하는 Symbol 값을 정의하는 것 외에 언어 내부에 사용되는 방법을 가리키는 11개의 내장된 Symbol 값을 제공합니다.
//클래스의 일반 방법//Symbol.iterator 방법은Foo 클래스의 기본 플러그인을 되돌려줍니다. for...of 순환은 이 플러그인을 자동으로 호출합니다.class Fo{ constructor(...args){ this.args=args; }//*하나의generator//클래스 내의 방법 정의는function 직접 함수 이름이 필요하지 않아도 된다.//모든* 이전의function은 생략된다//[Symbol] 이것은 정의 방법 이름이다//inerator는 이 대상이 of 문장에서 이 방법을 호출한다는 것을 의미한다.*[Symbol.iterator] () {for(var arg of this.args) {yield arg}for(var a of new Fo(1,2,3,4)){ console.log(a); }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.