ES6에 새로 추가된 데이터 유형: 1. 기호 유형, 3. 지도 유형, 5. WeakMap 유형,
이 튜토리얼의 운영 환경: Windows 7 시스템, ECMAScript 버전 6, Dell G3 컴퓨터.
ES6 새로운 데이터 유형
es6
이전에는 어떤 데이터 유형이 사용 가능했는지 살펴보겠습니다.es6
之前有哪些数据类型,
基本类型:
string
null
undefined
number
boolean
复杂类型:
object
由于新出的类型在平常工作中基本用不到,所以具体介绍还是直接看 MDN
的专业解释把,下面给大家讲解一些面试经常遇到的问题....
Answer:用 Symbol
作为对象的 key
即可
{ // 私有作用域 let a = Symbol() window.oo = { name: '对象', age: 18, [a]: '这是一个私有属性' } console.log(oo[a]) // 这是一个私有属性 } // 不能再作用域外打印...
此时对象 oo
就有一个私有属性,该属性在作用域外就无法正确打印。
Answer:用 Set
加 Array.form()
这是一道很经典的面试题,在此之前先讲讲 es6
之前的去重方法:
let array = [1, 2, 3, 4, 4, 5, 5, 6] ~function uniq() { let result = [] let hash = {} for (let i=0; i<array.length><p class="image-package"><img src="https://img.php.cn/upload/image/369/298/171/1630654569660947.png" title="1630654569660947.png" alt="es6에 추가된 새로운 데이터 유형은 무엇입니까?"></p> <p>但是该方法有巨大的弊端,去重数组中不能有对象,而且该方法返回的结果中都是字符串,所以无法对这样的数组进行去重。</p> <p>当我们使用 <code>Set</code> 时</p> <pre class="brush:php;toolbar:false">let a = {a: 11} let array = [0, 1, '1', '22', 22, a, a, 66] ~function uniq() { return Array.from(new Set(array)) // 装比写法 [... new Set(array)] }()
甚至连对象的引用也能去重,很简略的方法。
Answer:map
更像是对象的拓展,他的 key
可以是任意类型,不再像之前的对象 key
只能是字符串,也就是这个特性,我们可以去优化之前的去重,但是也没有必要,因为已经有 set
了。
举个栗子
let myMap = new Map() let keyObj = {} let keyFunc = function () {} let keyString = "a string" // 添加键 myMap.set(keyString, "和键'a string'关联的值"); myMap.set(keyObj, "和键keyObj关联的值"); myMap.set(keyFunc, "和键keyFunc关联的值");
Answer:
WeakMap
区别就是对 key
的引用是弱引用
WeakMap
的 key
string
null
번호
object
🎜🎜🎜🎜🎜🎜새로운 유형은 기본적으로 일상 업무에 사용되지 않으므로 자세한 소개는 MDN
를 참조하세요. 설명, 인터뷰에서 자주 묻는 질문은 다음과 같습니다....🎜🎜🎜Q1: 개체에 개인 속성을 갖는 방법은 무엇입니까? (Symbol의 용도는 무엇인가요?)🎜🎜🎜답변: Symbol
을 개체의 키
로 사용하세요🎜rrreee🎜이때 개체 oo를 사용할 수 있습니다. 범위 밖에서는 올바르게 인쇄할 수 없는 개인 속성입니다. 🎜🎜<img src="https://img.php.cn/upload/image/226/770/242/163065456437873es6%EC%97%90%20%EC%B6%94%EA%B0%80%EB%90%9C%20%EC%83%88%EB%A1%9C%EC%9A%B4%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EC%9C%A0%ED%98%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C?" title="163065456437873es6에 추가된 새로운 데이터 유형은 무엇입니까?" alt="es6에 추가된 새로운 데이터 유형은 무엇입니까?">🎜🎜🎜 Q2: 배열에서 중복 항목을 빠르게 제거하는 방법은 무엇입니까? 🎜🎜🎜답변: <code>Set
과 Array.form()
을 사용하세요.🎜이것은 매우 고전적인 인터뷰 질문입니다. 그 전에 es6
에 대해 이야기해 보겠습니다. 이전 중복 제거 방법: 🎜rrreee🎜🎜그러나 이 방법에는 큰 단점이 있습니다. 중복 제거 배열에는 개체가 있을 수 없으며, 이 방법으로 반환되는 결과는 모두 문자열이므로 이러한 배열을 처리할 수 없습니다. 중복 제거. 🎜🎜Set
을 사용하는 경우🎜rrreee
🎜🎜객체 참조도 중복 제거할 수 있는데, 이는 매우 간단한 방법입니다. 🎜🎜🎜Q3: 지도의 용도는 무엇인가요? 🎜🎜🎜답변: map
은 객체의 확장과 더 비슷합니다. key
는 이전 객체인 key
와 달리 모든 유형이 될 수 있습니다. 문자열일 수 있습니다. 즉, 이 기능을 사용하면 이전 중복 제거를 최적화할 수 있지만 이미 설정
이 있으므로 필요하지 않습니다. 🎜🎜예를 들어주세요🎜rrreee
🎜🎜🎜Q4: WeakMap과 Map의 차이점은 무엇인가요? 🎜🎜🎜답변: 🎜
WeakMap
차이점은 key
에 대한 참조가 약한 참조라는 것입니다. 🎜🎜🎜 🎜WeakMap
의 key
는 객체만 될 수 있습니다🎜🎜🎜🎜약한 참조가 무엇인지 알아야 합니다. 🎜문서: ES2015 학습 및 사용 WeakMap🎜🎜🎜Q5: WeakSet과 Set의 차이점은 무엇인가요? 🎜🎜🎜답변: 위와 동일🎜🎜🎜Q6: TypedArray의 용도는 무엇인가요? 🎜🎜🎜답변: 이 유형은 주로 바이너리 파일(오디오, 파일, 비디오, 사진...)을 처리하는 데 사용되며 자체 휠을 개발하지 않는 한 일반적으로 사용되지 않습니다. 🎜🎜【추천 학습: 🎜javascript 고급 튜토리얼🎜】🎜위 내용은 es6에 추가된 새로운 데이터 유형은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!