map 대상은 간단한 키/값 매핑입니다.객체 및 원래 값을 포함한 모든 값은 키 또는 값으로 사용할 수 있습니다.
var m = new Map();
var o = {p: "Hello World"};
m.set(o, "content")
m.get(o) // "content"```
2. **Map** 。 。
var map = new Map(["name", "장삼"], ["title", "Author"]]);map.size//2 map.get("name")//"장삼"맵.get("title")//"Author"```
크기 속성은 Map 구조의 구성원 수를 반환합니다.매핑된 객체의 키/값 쌍 수를 반환합니다.
set(k, v) 방법은 맵 자체를 되돌려주기 때문에 체인식으로 쓸 수 있다.
get(k) 방법은 키에 대응하는 키 값을 읽고 키를 찾지 못하면undefined로 돌아갑니다.
has(key) 방법은 어떤 키가 맵 데이터 구조에 있는지 여부를 나타내는 브리 값을 되돌려줍니다.
delete(key) 방법으로 키를 삭제하고true로 돌아갑니다.삭제에 실패하면 false를 되돌려줍니다.
clear () 방법은 모든 구성원을 제거하고 되돌아오는 값이 없습니다.
keys(): 키 이름을 되돌려 주는 역력기.
values (): 키 값을 되돌려 주는 플러그인입니다.
entries (): 모든 구성원의 역력기를 되돌려줍니다.
forEach(): 맵을 누비는 모든 멤버.
WeakMap
WeakMap 구조는 Map 구조와 기본적으로 유사한데 유일한 차이점은 대상만 키 이름(null 제외)으로 받아들이고 다른 유형의 값은 키 이름**으로 받아들이지 않으며 키 이름이 가리키는 대상은 쓰레기 회수 메커니즘에 포함되지 않는다는 것이다.
var map = new WeakMap()
map.set(1, 2)
// TypeError: 1 is not an object!
map.set(Symbol(), 2)
// TypeError: Invalid value used as weak map key
WeakMap의 디자인 목적은 키 이름이 대상의 약한 인용(쓰레기 회수 메커니즘은 이 인용을 고려하지 않음)이기 때문에 그에 대응하는 대상이 자동으로 회수될 수 있다는 것이다.객체가 회수되면 해당 키 값 쌍이 자동으로 제거됩니다.**
전형적인 응용은 DOM 요소에 대응하는 WeakMap 구조로 어떤 DOM 요소가 제거되면 그에 대응하는 WeakMap 기록이 자동으로 제거된다는 것이다.기본적으로 WeakMap의 전용 장소는 키에 대응하는 대상이 장래에 사라질 수 있다는 것이다.WeakMap 구조는 메모리 유출을 방지하는 데 도움이 된다.
WeakMap과 Map의 API에서의 차이는 주로 두 가지이다. 하나는 반복 작업(즉 키(),values(),entries() 방법이 없고size 속성도 없다.둘째, 비울 수 없습니다.clear 방법이 지원되지 않습니다.이것은 WeakMap의 키가 계산되지 않고 인용되지 않으며 쓰레기 회수 메커니즘이 무시되는 것과 관련이 있습니다.
WeakMap은 get(), set(), has(), delete()** 네 가지 방법만 사용할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다: