Set有對(duì)應(yīng)的WeakSet, Map也有WeakMap。這一篇,我們就來(lái)學(xué)習(xí)一下WeakMap有寫(xiě)什么特性。先來(lái)看一下WeakMap的基本特性: 1: WeakMap是一種存儲(chǔ)多個(gè)鍵值對(duì)的無(wú)序列表 2: WeakMap的鍵必須是非null的對(duì)象類型 3: WeakMap的鍵對(duì)應(yīng)的值,可以是任...
0x000 概述 WeakMap和Map使用上類似,在特性上和Set類似,和Map相比,有一下特點(diǎn) 不可枚舉 WeakMap的key只能是對(duì)象 WeakMap是弱引用,WeakMap內(nèi)的key如果沒(méi)有引用,將會(huì)被垃圾回收機(jī)制回收 0x001 初始化 new WeakMap([[{},1]]) 0x002 添加 let ...
ES6 中對(duì) WeakMap 的要求主要是對(duì) key(非 null 對(duì)象) 僅保留弱引用,且取值是 O(1) 復(fù)雜度,這導(dǎo)致了它的兩個(gè)特性: 不能求大小,更不能枚舉。 當(dāng) key 對(duì)象不被其他變量引用時(shí),會(huì)被垃圾回收系統(tǒng)回收。 按說(shuō)這種關(guān)乎內(nèi)存管...
前言 我們先從 WeakMap 的特性說(shuō)起,然后聊聊 WeakMap 的一些應(yīng)用場(chǎng)景。 特性 1. WeakMap 只接受對(duì)象作為鍵名 const map = new WeakMap(); map.set(1, 2); // TypeError: Invalid value used as weak map key map.set(null, 2); // TypeError: Invalid v...
...ne: false } console.log(values.next()) //{ value: undefined, done: true } WeakMap 對(duì)象是一組鍵/值對(duì)的集合,其中的鍵是弱引用的。其鍵必須是對(duì)象,而值可以是任意的。 WeakMap只提供了4個(gè)方法: 1.delete(key); 根據(jù)key刪除value 2.get(key);根據(jù)key獲取value...
WeakMap WeakSet 特性: WeakMap對(duì)key的引用和WeakSet的成員 是弱引用 WeakMap對(duì)key的引用和WeakSet的成員 只能是對(duì)象 無(wú)法遍歷 優(yōu)點(diǎn): 不易造成內(nèi)存泄漏 弱引用 引用了對(duì)象,但是不影響它的垃圾回收 不會(huì)因?yàn)樵摚ㄈ酰┮枚淖冊(cè)?..
...,7],[{foo:3},[abc]]]) // Map {true => 7, Object {foo: 3} => [abc]} WeakMap: WeakMap的特性 WeakMap與Map的區(qū)別有兩點(diǎn)。首先,WeakMap只接受對(duì)象作為鍵名(null除外),不接受其他類型的值作為鍵名。 const map = new WeakMap(); map.set(1, 2) // Type...
...。需要特別注意的是,Map 的遍歷順序就是插入順序。 4.WeakMap WeakMap結(jié)構(gòu)與Map結(jié)構(gòu)類似,也是用于生成鍵值對(duì)的集合。WeakMap與Map的區(qū)別有兩點(diǎn)。 首先,WeakMap只接受對(duì)象作為鍵名(null除外),不接受其他類型的值作為鍵名。其次...
...o:3},[abc]]]); // Map {true => 7, Object {foo: 3} => [abc]} 四、WeakMap 【01】WeakMap結(jié)構(gòu)與Map結(jié)構(gòu)基本類似,唯一的區(qū)別是它只接受對(duì)象作為鍵名(null除外),不接受其他類型的值作為鍵名。否則會(huì)報(bào)錯(cuò)。 var map = new WeakMap(); map.set(1, 2);//...
...rue; // Weak Sets var ws = new WeakSet(); ws.add({ data: 42 }); 類似于 WeakMap,WeakSet 對(duì)象可以讓你在一個(gè)集合中保存對(duì)象的弱引用,在 WeakSet 中的對(duì)象只允許出現(xiàn)一次: var ws = new WeakSet(); var obj = {}; var foo = {}; ws.add(window);...
...ap(1)?{b => 456} map.clear(); console.log(map); // Map(0)?{} } WeakMap WeakMap和Map的不同點(diǎn): WeakMap的key只能是對(duì)象 WeakMap的鍵名所引用的對(duì)象都是弱引用,垃圾回收機(jī)制不考慮對(duì)此對(duì)象的引用。(注意,WeakMap弱引用的只是鍵名,而不是...
...,7],[{foo:3},[abc]]]) // Map {true => 7, Object {foo: 3} => [abc]} WeakMap數(shù)據(jù)結(jié)構(gòu) 基本用法 WeakMap結(jié)構(gòu)與Map結(jié)構(gòu)類似,但是有兩點(diǎn)區(qū)別: 1、WeakMap只接受對(duì)象作為鍵名(null除外),不接受其他類型的值作為鍵名。 2、WeakMap的鍵名所指向的...
...參考。 ES6引入的數(shù)據(jù)結(jié)構(gòu) ES6新加入的數(shù)據(jù)類型有: WeakMap WeakSet Map Set Typed Objects1 Proxy2 Symbol3 Promise4 這些數(shù)據(jù)結(jié)構(gòu)的支持并不廣泛,在寫(xiě)這篇文章的時(shí)候。僅有新版本的Firefox和Node v0.11.x以上版本(開(kāi)啟--harmony參數(shù)后)支...
...素。我們操作的是棧,不應(yīng)該出現(xiàn)這種行為。 2. 用ES6的 WeakMap 實(shí)現(xiàn)類 有一種數(shù)據(jù)類型可以確保屬性是私有的,這就是 WeakMap 。我們會(huì)在第7章深入探討 Map 這種數(shù)據(jù)結(jié)構(gòu),現(xiàn)在只需要知道 WeakMap 可以存儲(chǔ)鍵值對(duì),其中鍵是對(duì)象,...
...ue,7],[{foo:3},[abc]]])// Map {true => 7, Object {foo: 3} => [abc]} WeakMap: WeakMap的特性 WeakMap與Map的區(qū)別有兩點(diǎn)。首先,WeakMap只接受對(duì)象作為鍵名(null除外),不接受其他類型的值作為鍵名。const map = new WeakMap();map.set(1, 2)// TypeErr...
ChatGPT和Sora等AI大模型應(yīng)用,將AI大模型和算力需求的熱度不斷帶上新的臺(tái)階。哪里可以獲得...
大模型的訓(xùn)練用4090是不合適的,但推理(inference/serving)用4090不能說(shuō)合適,...
圖示為GPU性能排行榜,我們可以看到所有GPU的原始相關(guān)性能圖表。同時(shí)根據(jù)訓(xùn)練、推理能力由高到低做了...