>  기사  >  웹 프론트엔드  >  ES의 Symbol 데이터 유형 설명

ES의 Symbol 데이터 유형 설명

一个新手
一个新手원래의
2017-09-27 09:56:481813검색


Function

고유 변수 선언

두 기호가 동일하지 않습니다.

let a1 = Symbol();  //不用newlet a2 = Symbol();
console.log(a1===a2); //false

키 값 충돌 방지

let a1=Symbol.for('abc');let obj={
        [a1]:'123',        'abc':345,        'c':456};
console.log('obj',obj);  // {abc: 345, c: 456, Symbol(abc): "123"}

[a1]은 위의 Symbol이고 키 값은 'abc'이고,

아래의 키 값도 'abc'이지만 충돌은 없습니다.

메서드

Symbol.for() 키 값 찾기

이 메서드는 전역적으로 키 값을 검색합니다.

이 있으면 값을 반환하고 에 없으면

를 반환합니다.

키 값 생성 .

let a3=Symbol.for('a3'); //声明keylet a4=Symbol.for('a3'); //找到变量a3对应的key值
console.log(a3===a4);    //a3 === a3
Object.getOwnPropertySymbols() 값 가져오기

Symbol()의 값만 가져올 수 있으며

일반 속성의 값은 가져올 수 없습니다

반환 값:
array

instance

let s5 = Symbol('s5');let s6 = Symbol('s6');let a = {
    [s5]: 'rs5',
    [s6]: 'rs6'}Object.getOwnPropertySymbols(a).forEach(function(item){
    console.log(a[item]);  // rs5  rs6})

Reflect. ownKeys()는 키와 값을 가져옵니다

Symbol() 및 non-Symbol

의 키와 값을 가져올 수 있습니다. 반환 값:

array

인스턴스

let s5 = Symbol('s5');let s6 = Symbol('s6');let a = {
    [s5]: 'rs5',
    [s6]: 'rs6'}

Reflect.ownKeys(a).forEach(function(item){
    console.log(item,a[item]); // Symbol(s5) "rs5"  Symbol(s6) "rs6"})

위 내용은 ES의 Symbol 데이터 유형 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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