맵과 위크맵.

1889 단어

Map

  • 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()** 네 가지 방법만 사용할 수 있습니다.
  • 좋은 웹페이지 즐겨찾기