Mumu

Results 31 comments of Mumu

> 我网上查说是WeakMap 相对于普通的 Map,也是键值对集合,只不过 WeakMap 的 key 只能是非空对象(non-null object)。WeakMap 对它的 key 仅保持弱引用,也就是说它不阻止垃圾回收器回收它所引用的 key。WeakMap 最大的好处是可以避免内存泄漏。一个仅被 WeakMap 作为 key 而引用的对象,会被垃圾回收器回收掉。 > ![image](https://user-images.githubusercontent.com/13551340/51016304-cc6f9880-15aa-11e9-88f9-981214780f28.png) > 你这里说是弱引用的weakMap不会被计入垃圾回收机制 这里说的的确有些歧义,WeakMap 的 key 会在没有引用时被 gc 回收,因此不能保证迭代的一致性。

> @labike > 可能是我们对「提升」的理解不同吧?我理解的「提升」和「赋值」是两个过程。 > 我拆解一下那个例子: > > ```js > var Foo = function() { /** pass */ }; > > { > // 「块作用域」内可以访问全局变量 Foo > const foo =...

```javascript // 实现一个批量请求函数 multiRequest(urls, maxNum) function multiRequest(urls, maxNum) { const result = [] const start = +new Date() let resolvedCount = 0 let pendingCount = 0 let windowSize = 0...

``` class ArrayInherit extends Array { constructor(options) { super(options); this.options=options; } push(item) { super.push(item); this.options.pushCb(item) } } class LazyMan { constructor(name) { this.name = name; this.sleepQueue = new ArrayInherit({pushCb: function(item)...

```js // 字符串仅由小写字母和 [] 组成,且字符串不会包含多余的空格。 // 示例一: 'abc' --> {value: 'abc'} // 示例二:'[abc[bcd[def]]]' --> {value: 'abc', children: {value: 'bcd', children: {value: 'def'}}} function format(str) { const stack = [] let...

``` function moveZero(arr) { const zeroPositionIndex = arr.indexOf(0); if (zeroPositionIndex === -1 || arr.slice(zeroPositionIndex, arr.length).every(item => item === 0)) { return; } else { arr.splice(zeroPositionIndex, 1); arr.push(0); moveZero(arr) } }...

``` function simplify(str, hyphen = '~') { if (str.length === 0) { return ''; } const arr = str.split(','); if (!arr.every(char => Number.isInteger(+char))) { throw new Error('invalid str, please check!');...

``` function add() { return Array.from(arguments).reduce((pre, item) => pre + item, 0) } function curry(fn) { let params = []; function result() { params.push(...arguments) return result; } result.toString = ()...

```js function add() { const params = [...arguments] recur.toString = acc; return recur() function acc() { return params.reduce((acc, item) => { acc += item; return acc; }, 0); } function...