<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                #### TypedArray ``` var buf = new ArrayBuffer(32); buf.length; //32 //buf就是一個二進制buffer,長為32字節(256位),預先初始化全部為0 //在其基礎上,可以放置一個視圖 var arr = new Uint16Array(buf); arr.length; //16 //16位無符號整型的類型數組 ``` 單個buf可以關聯多個視圖 ``` var buf = new ArrayBuffer(2); var v16 = new Uint16Array(buf); var v8 = new Uint8Array(buf); v16[0] = 3085; v16[0].toString(16); //c0d v8[0]; //13 v8[1]; //12 v8[0].toString(16); //d v8[1].toString(16); //c //交換 var tmp = v8[0]; var v8[0] = v8[1]; v8[1] = tmp; v16[0]; //3340 ``` ``` Int8Array //8位有符號整型 Uint8Array //8位無符號整型 Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array ``` 要清楚,TypedArray的元素是限制在聲明的位數大小中,如果視圖給一個Uint8Array的某個元素賦值為大于8位的值,這個值會被折回來適應其位寬 ``` var a = new Uint8Array(3); a[0] = 10; a[1] = 20; a[2] = 30; var b = a.map(v = > v*v); b; //[100, 144, 132]; //因為 //100是1100100是7位 //400是110010000是9位,被折成10010000也就是144 //900是1110000100,被折成10000100也就是132 ``` #### Map 對象的key只能是string ``` var o = {}, a = {id: 1}, b = {id: 2} o[a] = "foo"; o[b] = "bar"; o[a]; //bar o[b]; //bar //因為a和b這兩個key都被轉成了字符串[object Object],導致鍵值重復,先者被覆蓋 ``` ``` var o = new Map(); o.set(a, "foo"); o.set(b, "bar"); o.size; //2 o.delete(b); o.size; //1 o.clear(); //清空所有 o.size; //0 ``` ``` //Map的參數必須是一個iterable var m = new Map(o.entries()); //因為map的實例是iterable,與entries相同 var m = new Map(o); //也可以是其他iterable var a = {id: 1}, b = {id: 2} var m = new Map([ [a, "foo"], [b, "bar"] ]); m.get(a); //foo m.get(b); //bar var m = new Map([[1, 2], [3, 4]]); m.get(1); //2 m.values(); //MapIterator{2, 4} m.entries(); //MapIterator{1 => 2, 3 => 4} var vals = [...m.values()]; //[2, 4] 等價于Array.from(m.values()) var vals = [...m.entries()]; vals; //[[1, 2], [3, 4]] var keys = [...m.keys()]; //[1, 3] //判斷是否有某個鍵 m.has(1); //true ``` #### WeakMap WeakMap是Map的變體,二者多數行為是一致的,區別在于內存分配和垃圾回收機制(GC)的工作方式 WeakMap只允許對象作為key,如果對象自身被垃圾回收的話,WeakMap相應的這個項目也會被移除。更準確的來說是:WeakMap 中的對象都是弱引用,即垃圾回收機制不考慮 WeakMap 對該對象的引用,也就是說,如果其他對象都不再引用該對象,那么垃圾回收機制會自動回收該對象所占用的內存,不考慮該對象還存在于 WeakMap 之中。 WeakMap沒有size屬性和clear方法,也不會暴露任何key、value和迭代器,因此,你就當做只能操作set、get、has、delete()就好。 ``` var m = new WeakMap(); var x = {id: 1}, y = {id: 2}, z = {id: 3}, w = {id: 4}; m.set(x, y); x = null; //無法獲取x的value了 m.get(x); //undefined m.set(z, w); w = null; m.get(z); //{id: 4} 依舊可以獲取 ``` #### Set set是一個值得集合,其中的值唯一(重復的會被忽略),set的值不允許強轉,也就是1和"1"是兩個不同的值。 api和map類似,只是set變成了add并且沒有get方法 ``` var s = new Set(); var x = {id: 1}, y = {id: 2} s.add(x); s.add(y); s.add(x); s.size; //2 s.delete(y); s.size; //1 s.clear(); s.size; //0 ``` Set的構造器和Map相似,但Map接受鍵/值數組的數組,而Set接受value數組即可 ``` //自行對比Map new Map([[1, 2], [3, 4]]); new Set([2, 4]); var a = {id: 1}; var s = new Set(); s.add(a); s.has(a); //true ``` ``` var s = new Set([2, 4]); var keys = [...s.keys()]; //[2, 4] var vals = [...s.values()]; //[2, 4] var entries = [...s.entries()]; //[[2, 2], [4, 4]] ``` #### WeakSet 同WeakMap ``` var s = new WeakSet(); var a = {id: 1}, b = {id: 2}; s.add(a).add(b); a = null; //a可GC ``` 同樣的,WeakSet的值只能是對象 ``` new WeakSet([1, 2]); //Invalid value in weak set ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看