Shane Wang
Shane Wang
```html 一段文本 一句话 ``` ```js var p = document.getElementById('prag') console.log('nodeValue', p.nodeValue) // null console.log('childNodes', p.childNodes[0].nodeValue) // \n 一段文本\n console.log('innerHTML', p.innerHTML) // \n 一段文本\n 一句话\n console.log('innerText', p.innerText) // 一段文本 一句话 console.log('textContent',...
- javascript执行时单线程的,Service Worker可以启动另一条线程,可以去加载一些资源缓存起来,然后监听fetch事件,在这个事件里拦截页面的请求,先看下缓存里有没有,如果有直接返回,否则正常加载。或者是一开始不缓存,每个资源请求后再拷贝一份缓存起来,然后下一次请求的时候缓存里就有了。 - 语雀应用Service Worker缓存字体,样式表等
- react事件绑定传递的是一个中间变量,如果直接调用会导致this指向的丢失,这是javascript本来就有的问题 - 使用箭头函数this指向当前类作用域,解决了上述问题
- 结论:不一定 - 如果设置了defer或者async属性就不会阻塞 - defer 先下载等dom加载完成再执行脚本 - async 下载完再执行脚本
- 三种方法都是改变函数this的指向,接收参数的形式不同,bind额外返回一个函数 - 由于函数都可以使用这三种方法,因此在Function的原型上进行修改或者扩充 - 为了不作弊,实现也不使用call,apply,用到es6解构赋值 ### call ```js Function.prototype.myCall = function(ctx, ...args) { ctx = ctx || window ctx.fn = this const result = ctx.fn(...args) delete ctx.fun return result...
### 利用缓存 - 开启 babel-laoder 的 cacheDirectory - HardSourceWebpackPlugin 提升第一次之后的构建速度 ### 多进程解析,压缩 - thread-loader 开启多进程打包 loader会在一个独立的nodejs进程中运行 - terser-webpack-plugin 缩小javascript体积,并开启多进程压缩 ### 优化文件搜索时间 - loader 优化test正则,inclue,exclude 减少搜索范围 - resolve.module 指明存放第三方模块的绝对路径,减少搜索 - resolve.alias...