ํฐ์คํ ๋ฆฌ ๋ทฐ
** โ priv | ๊ฐ์๋
ธํธ
์นดํ
๊ณ ๋ฆฌ์ ์๋ ๋ด์ฉ์ ๋ฐํ์ด ๋ชฉ์ ์ด ์๋๊ธฐ ๋๋ฌธ์ ์ ํ ์ ์ ๋์ด์์ง ์์ต๋๋น.**
์น์ 7. Set & WeakSet
set : ์ค๋ณต์์ด ์ ์ผํ ๊ฐ์ ์ ์ฅํ๋ ค๊ณ ํ ๋, ์ด๋ฏธ ์กด์ฌํ๋์ง ์ฒดํฌํ ๋ ์ ์ฉ!
let mySet = new Set();
mySet.add("A");
mySet.add("๋");
mySet.add(3);
console.log(toString.call(mySet)); // ํ์
์ฒดํฌ : "[object Set]"
console.log(mySet); // Set(3) {"A", "๋", 3}
console.log(mySet.has("A")); // true
console.log(mySet.has(1)); // false
mySet.delete("๋");
console.log(mySet.has("๋")); // false
Set.prototype
๋ฉ์๋
mySet.size
: ์์ ์ ๋ฐํ
mySet.add(value)
์๋ก์ด ์์ ์ถ๊ฐ
++ set1 === set1.add(1); // true
value
์ ๊ด๋ จ๋ ์์๋ฅผ ์ ๊ฑฐํ๊ณ
Set.prototype.has(value)
๊ฐ ์ด์ ์ ๋ฐํํ๋ ๊ฐ์ ๋ฐํํฉ๋๋ค.
Set.prototype.has(value)
๋ ๊ทธ ๋ค์ false
๋ฅผ ๋ฐํํฉ๋๋ค.
mySet.clear()
: set ๋น์ฐ๊ธฐ
mySet.forEach()
: set ์ํ
WeakSet : ์ฐธ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด๋ง ์ ์ฅ ๊ฐ๋ฅ
let arr = [1,2,3,4];
let ws = new WeakSet();
ws.add(arr);
console.log(ws); // WeakSet {Array(4)}
ws.add(1);// Uncaught TypeError: Invalid value used in weak set
์์๊ฐ์ ์ ์ฅ์๋๊ณ ,
arr ์ ์ ์ฅ๋จ ====> reference type๋ค์ ์ค๋ณต์์ด ์ ์ฅํ๋ ค๊ณ ํ ๋ ์ ์ฉ
GC๊ฐ ์ฐธ์กฐ๋ฅผ ๊ณ์ ๋ชจ๋ํฐํ๊ธฐ๋๋ฌธ์
์ฐธ์กฐ๊ฐ ๋๊ธฐ๋ฉด WeakSet ์์๋ ์ญ์ ๊ฐ ๋๋ค!!!
let arr1 = [1,2,3,4];
let arr2 = [5,6,7,8];
let ws = new WeakSet();
ws.add(arr1);
ws.add(arr2);
arr1 = null;
console.log(ws.has(arr1)); // false
console.log(ws.has(arr2)); // true
WeakSet ์์๋ size
๋ฉ์๋ ์์
add(val)
, delete(val)
, has(val)
๋ง ์ฌ์ฉ
์น์ 8. Map & WeakMap
map : key/value ๊ตฌ์กฐ๋ก ๋์ด์์, objectํํ ๋ฐ์
Map๊ณผ Object ์ ์ฐจ์ด
* ํค ์๋ฃํ*
Map์ ํค๋ ํจ์, ๊ฐ์ฒด ๋ฑ์ ํฌํจํ ๋ชจ๋ ๊ฐ์ด ๊ฐ๋ฅํฉ๋๋ค.
Object์ ํค๋ ๋ฐ๋์ String ๋๋ Symbol์ด์ด์ผ ํฉ๋๋ค.
* ํค ์์*
Map์ ํค๋ ์ ๋ ฌ๋ฉ๋๋ค. ๋ฐ๋ผ์ Map์ ์ํ๋ ์ฝ์
์์ผ๋ก ์ด๋ค์ง๋๋ค.
Object์ ํค๋ ์ ๋ ฌ๋์ง ์์ต๋๋ค.
* ํฌ๊ธฐ*
Map์ ํญ๋ชฉ ์๋ size ์์ฑ์ ํตํด ์ฝ๊ฒ ์์๋ผ ์ ์์ต๋๋ค.
Object์ ํญ๋ชฉ ์๋ ์ง์ ์์๋ด์ผ ํฉ๋๋ค.
* ์ํ*
Map์ ์ํ ๊ฐ๋ฅํ๋ฏ๋ก, ๋ฐ๋ก ์ํํ ์ ์์ต๋๋ค.
Object๋ฅผ ์ํํ๋ ค๋ฉด ๋จผ์ ๋ชจ๋ ํค๋ฅผ ์์๋ธ ํ, ๊ทธ ํค์ ๋ฐฐ์ด์ ์ํํด์ผ ํฉ๋๋ค.
Map
๊ฐ์ฒด ์์ ๋ชจ๋ ์์๋ค์ [key, value]
ํํ์ array
๋ก ์ง์ด๋ฃ์ ์์๋๋ก ๊ฐ์ง๊ณ ์๋ Iterator
๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.
์ฃผ์ด์ง ํค(Key)์ ํด๋น๋๋ ๊ฐ(value)์ ๋ฐํํ๊ณ , ๋ง์ฝ ์์ผ๋ฉด undefined
๋ฅผ ๋ฐํํ๋ค.
Map ๊ฐ์ฒด์ ์ฃผ์ด์ง ํค(Key)์ ๊ฐ(Value)๋ฅผ ์ง์ด๋ฃ๊ณ , Map ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.
'๊ณต๋ถ > priv | ๊ฐ์๋ ธํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
- string
- js
- HTML
- eslint
- ์ฝ๋ฉ๋ถํธ์บ ํ
- stackoverflow
- GIT
- css
- VSC
- eventlistener
- ๋ฐ๋๋ผ์ฝ๋ฉ ํ๊ธฐ
- ๋ถํธ์บ ํ
- ์์ฑ์ํจ์
- array
- KEYBOARD
- review
- Stash
- DOM
- book
- ๋ฐ๋๋ผ์ฝ๋ฉ
- Total
- Today
- Yesterday