xsfxtsxxr

Results 19 comments of xsfxtsxxr

```js // 比较 old children 和 new children,并更新 if (oldCh && ch) { if (oldCh !== ch) { // 核心逻辑(最复杂的地方):怎么比较新旧 children 并更新,对应上面 // 的数组比较 updateChildren(elm, oldCh, ch, insertedVnodeQueue) } }...

防抖节流还是推荐冴羽大大的gitbub blog

> > 可以用这个自动生成唯一key值的库来解决 https://github.com/dylang/shortid > > 你好,我想问一下,为什么不能用随机uuid来代替 key ? 使用随机 uuid 和你这里的 shortid 有什么区别吗? @LuckyHH uuid跟shortid应该是相同功能的库,都是生成唯一的随机数,我们项目都是用的uuid,没用过shortid

@inJs 虽然这三个异步操作没有依赖关系,那要是函数内下面的某个操作需要他们三个全部返回才能处理怎么办呢?所以还是得用await,否则连async函数都没必要写。 ```js async function test(){ const cbs = await Promise.all([fetch('XXX1'), fetch('XXX2'),fetch('XXX3')]) // ...其他需要使用cbs的操作 } ```

> > ``` > > async ƒ test() { > > // 这样不会阻塞性能把 > > let a = fetch('XXX1') > > let b = fetch('XXX2') > > let c =...

## 对象转字符串 所以总结下,对象转字符串(就是 Number() 函数)可以概括为 ``` 这里是不是写错了,应该是String()函数 ```

强烈建议大佬把博客文章整理一下搞个类似阮一峰老师的ES6微信小程序

以前看阮一峰老师的ES6,看到尾调用这边云里雾里,后来看了冴羽大神写的执行环境栈运行原理,回过头看尾调用终于看懂了。 尾调用就是保证每次执行的时候,ECS里面只有一个函数执行上下文,这样在递归时候不会栈溢出。

@tancgo 我理解的出入栈如下: ``` // 尾调用 function f(x){ return g(x); } ECS:[] -> gloabalContext入栈 -> fContext入栈 -> fContext出栈 -> gContext入栈 -> gContext出栈 // 非尾调用 function f(x){ return g(x) + 1; }...

``` true 直接看核心步骤: +[] == +[] 相当于比较 "" == "",结果自然为 true ----> 这里是不是写错了,+[]应该是调用toNumber,所以应该是相当于 0 == 0吧? ```