이번에는 ES6 객체의 할당과 심볼을 가져오겠습니다. ES6 객체의 할당과 심볼을 사용할 때 주의사항은 무엇인가요?
객체 할당 병합:
//es6语法允许变量直接为对象的赋值,快捷方便; let liu="呵呵哒"; let long="赖皮哒"; let a={liu,long}; console.log(a) ; //es6语法允许为对象构建key值; let key='skill'; var obj={ [key]:'web'} console.log(obj.skill); //es6语法允许直接合并对象; let s={liuliu:"wowoda",age:20}; let ss={long:"赖皮"}; let sss=Object.assign(s,ss); console.log(sss); //object.is()方法判断是否相等;
두 개의 등호는 비교 중에 자동으로 유형 변환을 수행하지만, 세 개의 등호는 그렇지 않습니다. 유형이 다르면 false가 직접 반환되고,
그리고 Object.is ( )는 세 번째 등호를 기반으로 하며 NaN, -0 및 +0을 특별히 처리하여 -0과 +0이 더 이상 동일하지 않도록 합니다.
그러나 Object.is(NaN, NaN)에 유의해야 합니다. )은 true를 반환합니다
기호: 새로운 데이터 유형으로 es6에서 탄생했습니다. 기호는 문자 그대로 상징을 의미하며 무언가의 고유성을 나타냅니다.
let myId=Symbol(); let myname=Symbol(); console.log (myname) ===>Symbol() typeof myname ===>symbol console.log(myId===myname) ===>false
는 와 유사한 기호로 간주될 수 있습니다. 문자열 ; 암시적으로 변환할 수 없습니다.
Symbol()은 메모리에 새 함수를 생성하는 것으로 생각할 수 있습니다. 따라서 괄호가 함수의 기호라고 해도 과언이 아닙니다. ) );
Symbol 함수는 매개변수를 전달할 수도 있습니다. 매개변수는 이 Symbo에 대한 설명으로만 사용됩니다.
let myId=Symbol("id"); let myname=Symbol("名字");
두 기호의 매개변수가 동일하더라도 새 메모리 공간이 동일하지 않습니다.
Symbol의 가장 큰 용도는 개체의 속성으로 고유성을 보장하는 것입니다.
let system=Symbol(); let foo={}; foo[system]="windows"; //还可以保证key值为symbol类型的不被 for in遍历出来; //同样还证明了一点:对象的访问方式,要么以 . ;要么以["这里必须是字符串"];js的底层全部是字符串这种实现; console.log(foo);
Symbol은 플래그를 공유할 수도 있습니다.
let sy=Symbol.for("aaa");
Symbol.for(" ")는 매번 새 메모리를 생성하지 않습니다. 최대 1개만 존재합니다. 페이지에 aaa 로고가 없으면 새로 만들고, 있다면 이전 주소를 직접 참조하세요.
let cccc=Symbol.for("aaa");
그런 다음: console.log(sy== =cccc); //true; 결국에는 aaa 설명이 포함된 특정 기호 유형의 고유성이 보장됩니다. 더 흥미로운 정보를 알고 싶으시면 PHP 중국어 웹사이트의 다른 관련 기사도 주목해주세요!
관련 읽기:
ES6의 구조 분해 할당에 대한 자세한 설명위 내용은 ES6 객체 할당 및 기호의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!