728x90
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 1. WeakSet | |
let messages = [ | |
{text: "Hello", from: "John"}, | |
{text: "How goes?", from: "John"}, | |
{text: "See you soon", from: "Alice"} | |
]; | |
const readMessages = new WeakSet(); | |
// two messages have been read | |
readMessages.add(messages[0]); | |
readMessages.add(messages[1]); | |
// readMessages has 2 elements | |
// ...let's read the first message again! | |
readMessages.add(messages[0]); | |
// readMessages still has 2 unique elements | |
// answer: was the message[0] read? | |
console.log("Read message 0: " + readMessages.has(messages[0])); // true | |
messages.shift(); | |
// now readMessages has 1 element (technically memory may be cleaned later) | |
// 2. Symbol | |
const isRead = Symbol("isRead"); | |
messages[0][isRead] = true; |
'Algorithm > JavaScript(Node.js)' 카테고리의 다른 글
The Modern JS Tutorial: Destructuring Assignment: destructuring assignment (0) | 2021.10.25 |
---|---|
The Modern JS Tutorial: WeakMap and WeakSet: store read dates (0) | 2021.10.20 |
The Modern JS Tutorial: Map and Set: iterable keys (0) | 2021.10.06 |
The Modern JS Tutorial: Map and Set: filter anagrams (0) | 2021.10.06 |
The Modern JS Tutorial: Map and Set: filter unique array members (0) | 2021.10.06 |