Choi Yang
Choi Yang
https://juejin.cn/post/6906106922605543432
详解vue生命周期: https://segmentfault.com/a/1190000011381906 Vue - 生命周期详解: https://www.jianshu.com/p/672e967e201c
前端实现动画的6种方式详解: https://www.cnblogs.com/Renyi-Fan/p/9268657.html
廖雪峰-异步错误处理: https://www.liaoxuefeng.com/wiki/1022910821149312/1120880431288064 JS 异步错误捕获二三事: https://juejin.cn/post/6844903830409183239 try-catch 能抛出 promise 的异常吗: https://blog.csdn.net/xiaoluodecai/article/details/107297404

MDN-this https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/this
JavaScript深入之call的模拟实现 ``` Function.prototype.myCall = function (context = window) { // console.log(context); // foo context.fn = this; // console.log(this); // bar:function var arr = [...arguments]; arr.shift(); let result = context.fn(...arr); delete...
JavaScript深入之apply的模拟实现 ``` Function.prototype.myApply = function (context = window, arr) { context.fn = this; var result = context.fn(...arr); delete context.fn return result; } // 测试一下 var foo = { value: 1...
JavaScript深入之bind的模拟实现 ``` Function.prototype.myBind = function (context = window) { //判断调用者是否为函数 if (typeof this !== 'function') { return new TypeError('Error'); } //保存this调用方法的本身 const that = this; //获取参数 const args = Array.from(arguments).slice(1);...
```javascript let arr = [1, 2, [3, 4], [5, 6, [7, 8, 9]]]; /**第一种方式:flat */ let res1 = arr.flat(Infinity); console.log(res1); /**第二种方式:join + split*/ let res2 = arr.join().split(',').map(Number); console.log(res2); /**第三种方式: toString...