Showbuger

Results 21 comments of Showbuger

webpack打包后的代码其实就是一个IIFE,传入的参数是一个对象。以文件名作为 key,以文件内容作为 value,包含了打包后的所有模块。 ```js (function(modules) { // ... })( 'path1': function1, 'path2': function2, ) ``` 立即函数里面干的事: 1. 定义了一个模块缓存对象 `installedModules`,作用是缓存已经加载过的模块 2. 定义了一个模块加载函数 `__webpack_require__()` 3. ... 4. 使用 `__webpack_require__()`加载入口模块 核心就是`__webpack_require__()`,接收参数是 moduleId,其实就是文件路径 执行的过程:...

> 为什么a==true不行? Boolean和其他类型比较,先被转换为Number,true被转换成 1

> > 数组这个 a.join = a.shift; 没看懂啊 > > 如何a是Array,a==1 会自动数据类型的转换,也就是调用a.join方法,而a.shift是deleteArray的第一元素并返回delete的元素,understand? @ihoneys 啊?隐式类型转换还会调用 join 方法,我还以为就 toString 和 valueOf 呢,还有就是那个 拆箱时ToPrimitive,还会调用哪些方法?

> ```js > const nums = [-1, 0, 1, 2, -1, -4] > > const threeSum = (nums) => { > const res = [] > nums = nums.sort((a, b)...

不如直接MDN搜索for...of,讲的很详细,以及迭代对象是什么?迭代协议是什么?如何创建迭代器

我今天用egg-jwt的时候也是老报这个错 name: "UnauthorizedError" message: "invalid signature" code: "invalid_token" 最后在网上找到一个方法设置一个middleware在里面自己try catch验证token,然后我发现验证回来的token必须去掉前面的Bearer 比如用subtring(7)然后就可以验证成功了。 ``` 'use strict'; module.exports = options => { return async function jwt(ctx, next) { const token = ctx.request.header.authorization.substring(7); let...

> 宏观微观?我记得promise的执行是在setimeout之前(好像),async/await是基于promise的 因为其实setTimeout不是JavaScript的api,所以是在宏任务里,JavaScript的代码都是在微任务里执行的,所以执行之后才执行setTimeout的代码

> ```ts > // both of these result in 'true' > Boolean("hello"); // type: boolean, value: true > !!"world"; // type: true, value: true > ``` > > `!!"world"` `type`...

这个也有性能问题?而且this.state.page的查找不属于从原型链上查找,这不是从对象上查找吗