ES6
1)
https://buluo.qq.com/p/detail.html?bid=314687&pid=3951568-1489992778&from=share_qq
- async await
1 | const sleep = (timer) => new Promise( (resolve)=>{ |
- Promise.all
1 | const tasks = []; // 这里存放异步操作的 Promise |
, 表示立即输出 ->表示过一段时间再输出
js基础
1)
以let/const声明的变量或常量,必需是经过对声明的赋值语句的求值后,才算初始化完成,创建时并不算初始化。如果以let声明的变量没有赋给初始值,那么就赋值给它undefined值。也就是经过初始化的完成,才代表着TDZ期间的真正结束,这些在作用域中的被声明的变量才能够正常地被访问。
对于TDZ的解释:https://segmentfault.com/a/1190000008213835
1 | var x = 1; |
https://code.wileam.com/default-value-n-params-env/
Webpack
1) tree shaking 原理
例如, 在 webpack 项目中,有一个入口文件,入口文件有很多依赖的模块,实际情况中,虽然依赖了某个模块,但其实只使用其中的某些功能。通过 tree-shaking,将没有使用的模块摇掉,这样来达到删除无用代码的目的。
- Tree-shaking的本质是消除无用的js代码。
- ES6模块依赖关系是确定的,和运行时的状态无关,可以进行可靠的静态分析,这就是tree-shaking的基础。
所谓静态分析就是不执行代码,从字面量上对代码进行分析,ES6之前的模块化,比如我们可以动态require一个模块,只有执行后才知道引用的什么模块,这个就不能通过静态分析去做优化。
这是 ES6 modules 在设计时的一个重要考量,也是为什么没有直接采用 CommonJS,正是基于这个基础上,才使得 tree-shaking 成为可能,这也是为什么 rollup 和 webpack 2 都要用 ES6 module syntax 才能 tree-shaking。
文章:https://juejin.im/post/5a4dc842518825698e7279a9
其他
1) 如何在不增加中间变量的情况下,交换2个变量的值
1 | // .ts |
编译后
1 | // .js |
或者
1 | let a = 1, b = 2; |
React的setState是同步还是异步
immutable.js和pureComponent有什么关系
vue响应式的原理
webpack现在有100个入口,编了5分钟怎么办
101状态码是什么意思
302和304分别表示什么
async/defer的区别
css三角形怎么画
输入url到渲染都发生什么
最近的新技术都了解哪些