æ¬ç« ã§ã¯ããã¼ã«ãã£ã¦ç´¢å¼ä»ãããããã¼ã¿ã®ã³ã¬ã¯ã·ã§ã³ãç´¹ä»ãã¾ããMap
ããã³ Set
ãªãã¸ã§ã¯ãã¯æ¿å
¥é ã«å復å¦çãè¡ããè¦ç´ ãä¿æãã¾ãã
Map
ãªãã¸ã§ã¯ãã¯ãã¼ã¨å¤ã®ãããã§ãæ¿å
¥é ã«è¦ç´ ãå復å¦çãããã¨ãã§ãã¾ãã
次ã®ã³ã¼ãã§ã¯ Map
ãç¨ããããã¤ãã®åºæ¬çãªæä½ã表ãã¦ãã¾ããã¾ãã追å ã®ä¾ãå
¨ã¦ã® API ã«ã¤ãã¦ã¯ã Map
ãªãã¡ã¬ã³ã¹ãã¼ã¸ãã覧ãã ããã for...of
ã«ã¼ãã使ã£ã¦ãåå復å¦çã«ãã㦠[key, value]
ãããªãé
åãè¿ãã¦ãã¾ãã
const sayings = new Map();
sayings.set("dog", "woof");
sayings.set("cat", "meow");
sayings.set("elephant", "toot");
sayings.size; // 3
sayings.get("dog"); // woof
sayings.get("fox"); // undefined
sayings.has("bird"); // false
sayings.delete("dog");
sayings.has("dog"); // false
for (const [key, value] of sayings) {
console.log(`${key} goes ${value}`);
}
// "cat goes meow"
// "elephant goes toot"
sayings.clear();
sayings.size; // 0
Object 㨠Map ã¨ã®æ¯è¼
ä¼çµ±çã«ãobjects ã¯æååãå¤ã«å¯¾å¿ä»ãããã®ã«ä½¿ããã¦ãã¾ããããªãã¸ã§ã¯ãã使ããã¨ã§ããã¼ãå¤ã«è¨å®ãããã®å¤ãåå¾ãããã¼ãåé¤ãããã¼ã«å¯¾å¿ããä½ããæ ¼ç´ããã¦ãããã©ããã調ã¹ããã¨ãã§ãã¾ãããããã Map
ãªãã¸ã§ã¯ãã«ã¯ãããåªãããããã¨ãªãããã¤ãã®å©ç¹ãããã¾ãã
Object
ã®ãã¼ã¯æååã¾ãã¯ã·ã³ãã«ã§ããã®ã«å¯¾ãã¦ã Map
ã¯ã©ã®ãããªå¤ã§ãå©ç¨ã§ãã¾ããMap
㯠size
ã§ç°¡åã«åå¾ã§ããã®ã«å¯¾ãã Object
ã¯æåã§è¿½è·¡ããå¿
è¦ãããã¾ããObject
ã¯ãããã¿ã¤ããæã£ã¦ããã®ã§ããããå
ã«æ¢å®ã®ãã¼ãåå¨ãã¾ãï¼ãã㯠map = Object.create(null)
ã使ã£ã¦åé¿ã§ãã¾ãï¼ãMap
㨠Object
ã®ã©ã¡ãã使ç¨ãã¹ãããæ±ºããã«ã¯ãä¸è¨ã® 3 ã¤ã®ãã³ããå½¹ç«ã¤ã§ãããã
WeakMap
ãã¼ã¨å¤ã®ãã¢ã®éåã§ããããã¼ã¯ãªãã¸ã§ã¯ãã¾ãã¯éç»é²ã·ã³ãã«ã§ãªããã°ãªãããå¤ã¯ä»»æã® JavaScript åã§ããã¼ã¸ã®å¼·ãåç
§ã使ãã¾ãããã¤ã¾ãããªãã¸ã§ã¯ãã WeakMap
ã®ãã¼ã¨ãã¦åå¨ãã¦ãããã®ãªãã¸ã§ã¯ããã¬ãã¼ã¸ã³ã¬ã¯ã·ã§ã³ã®å¯¾è±¡ã¨ãªããã¨ã妨ãããã¨ã¯ããã¾ããããã¼ã¨ãã¦ä½¿ç¨ããã¦ãããªãã¸ã§ã¯ããååãããå ´åããã®ãªãã¸ã§ã¯ãã«å¯¾å¿ãã WeakMap
å
ã®å¤ããä»ã®å ´æã§å¼·ãåç
§ããã¦ããªãéããã¬ãã¼ã¸ã³ã¬ã¯ã·ã§ã³ã®å¯¾è±¡ã¨ãªãã¾ãã WeakMap
ã®ãã¼ã¨ãã¦ä½¿ç¨ã§ããå¯ä¸ã®ããªããã£ãåã¯ã·ã³ãã«ï¼ããç¹å®ã®éç»é²ã·ã³ãã«ï¼ã§ããéç»é²ã·ã³ãã«ã¯ä¸æã§ãããã¨ãä¿è¨¼ããã¦ãããå使ã§ããªãããã§ãã
WeakMap
API ã¯æ¬è³ªçã«ã¯ Map
API ã¨åãã§ãã ãããã WeakMap
ã§ã¯ãã¼ã®çåç¶æ³ãç£è¦ã§ããªããããåæãã§ãã¾ããããã®ããã WeakMap
å
ã®ãã¼ã®ä¸è¦§ãåå¾ããæ¹æ³ã¯ããã¾ããããããã®ãããªã¡ã½ããããã£ãã¨ãã¦ããä¸è¦§ã¯ã¬ãã¼ã¸ã³ã¬ã¯ã·ã§ã³ã®ç¶æ
ã«ä¾åããä¸ç¢ºå®æ§ãçã¾ãã¦ãã¾ãã¾ãã
詳細ããµã³ãã«ã³ã¼ãã«ã¤ãã¦ã¯ãWeakMap
ãªãã¡ã¬ã³ã¹ãã¼ã¸ã®ããªã WeakMap ãªã®ãï¼ããã覧ãã ããã
WeakMap
ãªãã¸ã§ã¯ãã®ããããä½¿ç¨æ¹æ³ã®ã²ã¨ã¤ã¨ãã¦ããªãã¸ã§ã¯ãã«å¯¾ãããã©ã¤ãã¼ããã¼ã¿ã®æ ¼ç´ããããã¯å®è£
ã®ç´°é¨ã®é è½ãããã¾ããæ¬¡ã®ä¾ã¯ Nick Fitzgerald æ°ã®ããã°æç¨¿ã"Hiding Implementation Details with ECMAScript 6 WeakMaps" ããã®å¼ç¨ã§ãããã©ã¤ãã¼ããªãã¼ã¿ã¨ã¡ã½ããã¯ãªãã¸ã§ã¯ãã®å
é¨ã«å±ãã¦ãã¦ããã©ã¤ãã¼ã㪠WeakMap
ãªãã¸ã§ã¯ãã«æ ¼ç´ããã¦ãã¾ããã¤ã³ã¹ã¿ã³ã¹ããé²åºããå
¨ã¦ã¨ãããã¿ã¤ãã¯å
¬éããã¦ãã¾ããä»ã®å
¨ã¦ã®ãã®ã¯å¤é¨ããã¢ã¯ã»ã¹ã§ãã¾ããã privates
ã¯ã¢ã¸ã¥ã¼ã«ããã¨ã¯ã¹ãã¼ãããã¦ãã¾ããã
const privates = new WeakMap();
function Public() {
const me = {
// ããã«ãã©ã¤ãã¼ããã¼ã¿ãç½®ããã
};
privates.set(this, me);
}
Public.prototype.method = function () {
const me = privates.get(this);
// `me` ã«ãã©ã¤ãã¼ããã¼ã¿ãè©°ãè¾¼ãâ¦
};
module.exports = Public;
Set Set ãªãã¸ã§ã¯ã
Set
ãªãã¸ã§ã¯ãã¯ãå¤ã«ãã£ã¦æ§æãããã³ã¬ã¯ã·ã§ã³ã§ããæ¿å
¥é ã«è¦ç´ ãå復å¦çãããã¨ãã§ãã¾ãã Set
ã® 1 ã¤ã®å¤ã¯ 1 åã ãåºç¾ãã¾ãã Set
ã®ã³ã¬ã¯ã·ã§ã³å
ã§ã¯å¤ã¯ä¸æã§ãã
次ã®ã³ã¼ãã§ã¯ Set
ãç¨ããããã¤ãã®åºæ¬çãªæä½ã表ãã¦ãã¾ããã¾ãã追å ã®ä¾ãå
¨ã¦ã® API ã«ã¤ãã¦ã¯ãSet
ãªãã¡ã¬ã³ã¹ãã¼ã¸ãã覧ãã ããã
const mySet = new Set();
mySet.add(1);
mySet.add("some text");
mySet.add("foo");
mySet.has(1); // true
mySet.delete("foo");
mySet.size; // 2
for (const item of mySet) {
console.log(item);
}
// 1
// "some text"
Array 㨠Set éã®å¤æ
Array.from
ã¾ãã¯ã¹ãã¬ããæ§æã使ç¨ã㦠Set
ãã Array
ãçæãããã¨ãã§ãã¾ããã¾ããSet
ã³ã³ã¹ãã©ã¯ã¿ã¼ã使ã£ã¦ Array
ãã Set
ã¸ã¨é夿ãããã¨ãã§ãã¾ãã
ã¡ã¢: Set
ãªãã¸ã§ã¯ãã¯ä¸æã®å¤ãæ ¼ç´ãããã¨ã«ãããããæ³¨æãã¦ãã ãããéè¤ããè¦ç´ ã¯é
åãã夿ããã¨ãã«åé¤ããã¾ãã
Array.from(mySet);
[...mySet2];
mySet2 = new Set([1, 2, 3, 4]);
Array 㨠Set ã¨ã®æ¯è¼
ä¼çµ±çã«ãè¦ç´ ã®éåã¯å¤ãã®ç¶æ³ã«ãã㦠JavaScript ã®é
åã«æ ¼ç´ããã¦ãã¾ãããããããæ°ãã Set
ãªãã¸ã§ã¯ãã«ã¯ããã¤ãã®å©ç¹ãããã¾ãã
arr.splice(arr.indexOf(val), 1)
) ã¯ã¨ã¦ãä½éã§ããSet
ãªãã¸ã§ã¯ãã¯å¤ãæå®ãã¦è¦ç´ ãåé¤ãããã¨ãã§ãã¾ããé
åã§ã¯ãè¦ç´ ã®ã¤ã³ããã¯ã¹ã«åºã¥ã㦠splice
ãå®è¡ããå¿
è¦ãããã¾ããNaN
ã®å¤ã¯é
åã® indexOf
ã§è¦ã¤ãããã¨ãã§ãã¾ãããSet
ãªãã¸ã§ã¯ãã¯ä¸æã®å¤ãæ ¼ç´ãã¾ããéè¤ãæ°ã«ããå¿
è¦ã¯ããã¾ãããWeakSet
ãªãã¸ã§ã¯ãã¯ãã¬ãã¼ã¸ã³ã¬ã¯ã·ã§ã³å¯è½ãªãªãã¸ã§ã¯ãã®ã³ã¬ã¯ã·ã§ã³ã§ããããªãã¸ã§ã¯ãã¨éç»é²ã·ã³ãã«ãå
¥ãããã¨ãã§ãã¾ãã WeakSet
å
ã® 1 ã¤ã®ãªãã¸ã§ã¯ã㯠1 åã ãåºç¾ãã¾ãã WeakSet
ã³ã¬ã¯ã·ã§ã³å
ã§ã¯å¤ã¯ä¸æã§ãã
Set
ãªãã¸ã§ã¯ãã¨ã®ä¸»ãªéãã¯æ¬¡ã®éãã§ãã
Set
ã¨ã¯å¯¾ç
§çã«ãWeakSet
ã¯ãªãã¸ã§ã¯ãã¾ãã¯ã·ã³ãã«ã®ã¿ã®ã³ã¬ã¯ã·ã§ã³ã§ãããä»»æã®åã®ä»»æã®å¤ã§ã®ã³ã¬ã¯ã·ã§ã³ã§ã¯ããã¾ãããWeakSet
ã¯å¼±ããã®ã§ããã³ã¬ã¯ã·ã§ã³ã§ã®ãªãã¸ã§ã¯ãã§ã®åç
§ã¯å¼±ãä¿æããã¦ãã¾ãã WeakSet
å
ã«æ ¼ç´ããã¦ãããªãã¸ã§ã¯ãã«å¯¾ããåç
§ããªããªã£ãå ´åãã¬ãã¼ã¸ã³ã¬ã¯ã·ã§ã³ããã¾ããããã¯ã¾ããç¾å¨ã³ã¬ã¯ã·ã§ã³å
ã«æ ¼ç´ããã¦ãããªãã¸ã§ã¯ãã®ãªã¹ãããªãã¨ãããã¨ã表ãã¦ãã¾ããWeakSet
ã¯åæå¯è½ã§ã¯ããã¾ãããWeakSet
ãªãã¸ã§ã¯ãã®ä½¿ç¨ä¾ã¯éå®çã§ããã¡ã¢ãªã¼ãªã¼ã¯ãçºçããªãããã«ãããããä¾ãã°ãDOM è¦ç´ ããã¼ã¨ãã¦ä½¿ç¨ããç£è¦ããããã«ãããã«ãã¼ãã³ã°ãããã¨ãå®å
¨ã«è¡ãªãã¾ãã
Map
ãªãã¸ã§ã¯ãã®ãã¼ã®ç夿§ã¨ Set
ãªãã¸ã§ã¯ãã®å¤ã®ç夿§ã¯ä¸¡æ¹ã¨ãããSameValueZero ã¢ã«ã´ãªãºã ãã«åºã¥ãã¦ãã¾ãã
===
ã®ããã«å¤å®ãã¾ãã-0
㨠+0
ã¯çããã¨è¦ãªãã¾ããNaN
ã¯ï¼===
ã¨ã¯ç°ãªãï¼èªèº«ã¨çããã¨è¦ãªããã¾ããRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4