ES6 symbol

2884 단어
맵에서 키를 누르면 대상을 사용할 수 있습니다.
그러나 다른 곳에서는 안 됩니다. 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); }

좋은 웹페이지 즐겨찾기