摘要: 资源定位-动态加载 通过resolve方法进行异步解析,完整解析如下图所示: 根据上篇文章startUp.js代码,我们继续完善本章动态加载资源的代码。 (function(global) { var startUp = global.startUp = { version: '1.0.1' } v 阅读全文
posted @ 2020-01-29 19:58 进击的小牛牛 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 依赖加载策略 模块数据初始化 status状态生命周期 代码展示 demo包括4个文件, index.html , a.js , b.js , startUp.js index.html <!DOCTYPE html> <html> <head> <title>自研模块加载器</title> </h 阅读全文
posted @ 2020-01-29 15:10 进击的小牛牛 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 结构导论 模块部分 数据初始化: 加载器中设计来一个名为Module的构造函数,每个模块都是此构造函数实例对象。构造函数中给实例对象扩展了"未来"所需用到的属性和方法。 模块存储: 加载器中设计来一个名为cache的缓存对象,每个文件(模块)都会存储在cache对象中。 具体存储方式: { "当前模 阅读全文
posted @ 2020-01-26 16:46 进击的小牛牛 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 模块系统概述 CommonJs/AMD/CMD/ES6 Modules 什么是模块化? 模块化就是把系统分离成独立的功能的方法,需要什么功能,就加载什么功能 当一个系统越来越复杂时候,我们会遇到这些问题 1. 命名冲突 2. 文件依赖 使用模块化开发可以避免以上问题,并提升开发效率 1. 可维护性 阅读全文
posted @ 2020-01-26 15:20 进击的小牛牛 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 纯函数: 定义: 对于相同的输入永远会得到相同的输出,而且没有任何可以观察的副作用,也不依赖外部的环境状态。 例如数学公式: y=f(x) 在javascript中,对于数组的操作,有的是纯的,有的是不存的,如: let arr = [1,2,3,4,5]; // 纯函数 arr.slice(0,3 阅读全文
posted @ 2020-01-23 17:21 进击的小牛牛 阅读(448) 评论(0) 推荐(1) 编辑
摘要: 不过有些数据被使用之后,可能就不再需要了,我们把这种数据称为垃圾数据。如果这些垃圾数据一直保存在内存中,那么内存会越用越多,所以我们需要对这些垃圾数据进行回收,以释放有限的内存空间。 不同语言的垃圾回收策略 通常情况下,垃圾数据回收分为手动回收和自动回收两种策略。 如 C/C++ 就是使用手动回收策 阅读全文
posted @ 2020-01-10 13:52 进击的小牛牛 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 我们知道,CPU 资源是有限的,任务的处理速度与线程个数并不是线性正相关。相反,过多的线程反而会导致 CPU 频繁切换,处理性能下降。所以,线程池的大小一般都是综合考虑要处理任务的特点和硬件环境,来事先设置的。 当我们向固定大小的线程池中请求一个线程时,如果线程池中没有空闲资源了,这个时候线程池如何 阅读全文
posted @ 2019-12-05 14:37 进击的小牛牛 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 浏览器的前进、后退功能,我想你肯定很熟悉吧? 当你依次访问完一串页面 a-b-c 之后,点击浏览器的后退按钮,就可以查看之前浏览过的页面 b 和 a。当你后退到页面 a,点击前进按钮,就可以重新查看页面 b 和 c。但是,如果你后退到页面 b 后,点击了新的页面 d,那就无法再通过前进、后退功能查看 阅读全文
posted @ 2019-12-05 13:56 进击的小牛牛 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 对于前端开发者来说,JavaScript 的内存机制是一个不被经常提及的概念 ,因此很容易被忽视。特别是一些非计算机专业的同学,对内存机制可能没有非常清晰的认识,甚至有些同学根本就不知道 JavaScript 的内存机制是什么。 但是如果你想成为行业专家,并打造高性能前端应用,那么你就必须要搞清楚 阅读全文
posted @ 2019-12-04 17:25 进击的小牛牛 阅读(420) 评论(0) 推荐(0) 编辑
摘要: 在上篇文章中,我们讲了词法作用域、作用域链以及闭包,接下来我们分析一下这段代码: 在 printName 函数里面使用的变量 myName 是属于全局作用域下面的,所以最终打印出来的值都是“极客邦”。这是因为 JavaScript 语言的作用域链是由词法作用域决定的,而词法作用域是由代码结构来确定的 阅读全文
posted @ 2019-12-03 17:19 进击的小牛牛 阅读(394) 评论(0) 推荐(0) 编辑