Logan

Results 12 comments of Logan

```js class LazyMan { constructor(name) { this.promise = Promise.resolve().then(() => console.log(`Hi I am ${name}`)) } sleepFirst(time) { this.promise = this.promise.then(() => new Promise(resolve => setTimeout(resolve, time * 1000))) return this...

可以在配置时的`loadingHtml `键内传入自定义html结构(具有自定义css)即可

> 请教一下 `& { _?: [O, K] }` 的作用是什么 `_` 是为了防止和现有 key 冲突,`[O, K]` 是为了生成和原O[K]有区分的一个新对象类型

> 写得太仔细了,背不下来,面试时候感觉只能写个最简单的版本 不用背,前面的都是边界情况处理,或者新标准的兼容,核心还是最后一块儿代码,理解最后一块儿代码,并且面试的时候能说出来我感觉足够了。

@LasyIsLazy 我认为`栈空的时候才会调用异步队列的任务`描述不太准确,应该是同步任务队列空的时候调用异步任务队列,全局上下文出栈违背了只有一个全局上下文的原则,不管同步代码还是异步代码,也都是在全局上下文定义执行的,我理解全局上下文出栈意味着页面生命周期结束。

又看了下HTML标准文档,其实描述为全局上下文并不合适,应该描述为领域(Realm)上下文。 例如存在iframe时会存在多个Realm。 > There is always a 1-to-1-to-1 mapping between JavaScript realms, global objects, and environment settings objects 领域执行上下文`realm execution context`挂载在`environment settings objects`上的 - `run script`时将`realm execution context`压栈 - `clean...

@lixialu 因为在`changeNum(num)`调用时,`num`只是作为一个值传入了`changeNum`,然后`changeNum`内部初始化了一个`num`变量,被复制1,自增到2,返回,但是调用的地方没有接函数返回值,这个2也就被垃圾回收了

@xiahouwei 将task跟在原来的Promise后面,每次都会赋值新的Promise,可以实现串行的

@junglehunter96 f3只是一个变量名,其值其实是f1里面return出来的function f2,所以其外部词法环境其实是f2定义时所在的词法环境,即f1的词法环境,i为5,词法环境只取决于定义的地方,和调用的地方无关,不会变化。

@zhoubhin 还是理解复杂了,变量不会销毁是因为闭包引用了它,无法被垃圾回收机制回收,把闭包设为null,变量就会销毁了,仅此而已。