加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

一个合格的中级前端工程师必须要掌握的28个JavaScript技巧

发布时间:2019-06-04 20:54:51 所属栏目:优化 来源:yeyan1996
导读:副标题#e# 1.判断对象的数据类型 使用 Object.prototype.toString 配合闭包,通过传入不同的判断类型来返回不同的判断函数,一行代码,简洁优雅灵活(注意传入 type 参数时首字母大写) 不推荐将这个函数用来检测可能会产生包装类型的基本数据类型上,因为 cal

20. new 关键字

一个合格的中级前端工程师必须要掌握的 28 个 JavaScript 技巧

21. 实现 Object.assign

一个合格的中级前端工程师必须要掌握的 28 个 JavaScript 技巧

22. instanceof

一个合格的中级前端工程师必须要掌握的 28 个 JavaScript 技巧

原理是递归遍历 right 参数的原型链,每次和 left 参数作比较,遍历到原型链终点时则返回 false,找到则返回 true

23. 私有变量的实现

一个合格的中级前端工程师必须要掌握的 28 个 JavaScript 技巧

使用 Proxy 代理所有含有 _ 开头的变量,使其不可被外部访问

一个合格的中级前端工程师必须要掌握的 28 个 JavaScript 技巧

通过闭包的形式保存私有变量,缺点在于类的所有实例访问的都是同一个私有变量

一个合格的中级前端工程师必须要掌握的 28 个 JavaScript 技巧

另一种闭包的实现,解决了上面那种闭包的缺点,每个实例都有各自的私有变量,缺点是舍弃了 class 语法的简洁性,将所有的特权方法(访问私有变量的方法)都保存在构造函数中

一个合格的中级前端工程师必须要掌握的 28 个 JavaScript 技巧

通过 WeakMap 和闭包,在每次实例化时保存当前实例和所有私有变量组成的对象,外部无法访问闭包中的 WeakMap,使用 WeakMap 好处在于不需要担心内存溢出的问题

24. 洗牌算法

早前的 chrome 对于元素小于 10 的数组会采用插入排序,这会导致对数组进行的乱序并不是真正的乱序,即使最新的版本 chrome 采用了原地算法使得排序变成了一个稳定的算法,对于乱序的问题仍没有解决

一个合格的中级前端工程师必须要掌握的 28 个 JavaScript 技巧

一个合格的中级前端工程师必须要掌握的 28 个 JavaScript 技巧

通过洗牌算法可以达到真正的乱序,洗牌算法分为原地和非原地,图一是原地的洗牌算法,不需要声明额外的数组从而更加节约内存占用率,原理是依次遍历数组的元素,将当前元素和之后的所有元素中随机选取一个,进行交换

25. 单例模式

一个合格的中级前端工程师必须要掌握的 28 个 JavaScript 技巧

通过 ES6 的 Proxy 拦截构造函数的执行方法来实现的单例模式

26. promisify

一个合格的中级前端工程师必须要掌握的 28 个 JavaScript 技巧

使用方法:

一个合格的中级前端工程师必须要掌握的 28 个 JavaScript 技巧

promisify 函数是将回调函数变为 promise 的辅助函数,适合 error-first 风格(nodejs)的回调函数,原理是给 error-first 风格的回调无论成功或者失败,在执行完毕后都会执行最后一个回调函数,我们需要做的就是让这个回调函数控制 promise 的状态即可

这里还用了 Proxy 代理了整个 fs 模块,拦截 get 方法,使得不需要手动给 fs 模块所有的方法都包裹一层 promisify 函数,更加的灵活

27. 优雅的处理 async/await

一个合格的中级前端工程师必须要掌握的 28 个 JavaScript 技巧

使用方法:

一个合格的中级前端工程师必须要掌握的 28 个 JavaScript 技巧

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!