摘要:
原文链接: https://mp.weixin.qq.com/s/fmu5CIO7lExeB10Rlb7Cpw 前几天在公众号上看了这篇文章,作者是阿里的技术大牛,我用了三天的部分碎片时间啃完了,文章中提到了一个 认知升级 的概念,阅读完后感觉受益匪浅。 趁着周末有空,想针对这篇文章做一些摘抄,可能 阅读全文
摘要:
首先要理解调用位置: 调用位置就是函数在代码中被调用的位置(而不是声明的位置)。 最重要的是要分析调用栈(就是为了到达当前执行位置所调用的所有函数)。 我们关心的调用位置就在当前正在执行的函数的前一个调用中。 javascript function foo(a) { this.a = a; } va 阅读全文
摘要:
this 指向函数的作用域是一种常见的误解,this 在任何情况下都不指向函数的词法作用域。 在 JavaScript 内部, 作用域确实和对象类似, 可见的标识符都是它的属性。 但是 作用域“对象” 无法通过 JavaScript代码访问, 它存在于 JavaScript 引擎内部 。 每当你想要 阅读全文
摘要:
动态作用域让作用域作为一个在运行时就被动态确定的形式, 而不是在写代码时进行静态确定的形式。动态作用域并不关心函数和作用域是如何声明以及在何处声明的, 只关心它们从何处调用。 换句话说, 作用域链是基于调用栈的, 而不是代码中的作用域嵌套。 词法作用域: 词法作用域让 foo() 中的 a 通过 R 阅读全文
摘要:
当函数可以记住并访问所在的词法作用域时, 就产生了闭包, 即使函数是在当前词法作用域之外执行。 将一个内部函数( 名为 timer) 传递给 setTimeout(..)。 timer 具有涵盖 wait(..) 作用域的闭包, 因此还保有对变量 message 的引用。wait(..) 执行 10 阅读全文
摘要:
关于函数声明:如果 function 是声明中的第一个词, 那么就是一个函数声明, 否则就是一个函数表达式。例如匿名函数这种形式,函数会被当作函数表达式而不是一个标准的函数声明来处理。 这种表达式有另外一种用途是倒置代码的运行顺序, 将需要运行的函数放在第二位, 在 IIFE执行之后当作参数传递进去 阅读全文
摘要:
关于函数声明:如果 function 是声明中的第一个词, 那么就是一个函数声明, 否则就是一个函数表达式。例如匿名函数这种形式,函数会被当作函数表达式而不是一个标准的函数声明来处理。 这种表达式有另外一种用途是倒置代码的运行顺序, 将需要运行的函数放在第二位, 在 IIFE执行之后当作参数传递进去 阅读全文
摘要:
Javascript是一门编译语言,它不是提前编译的, 编译结果也不能在分布式系统中进行移植。 在传统编译语言的流程中, 程序中的一段源代码在执行之前会经历三个步骤, 统称为“编译”: 1. 分词/词法分析(将由字符组成的字符串分解成(对编程语言来说) 有意义的代码块, 这些代 码块被称为词法单元 阅读全文
摘要:
词法作用域是一套关于引擎如何寻找变量以及会在何处找到变量的规则。 词法作用域最重要的特征是它的定义过程发生在代码的书写阶段(假设你没有使用eval() 或 with) 欺骗词法:指修改词法作用域, 欺骗词法作用域会导致性能下降。 两种方法: eval 和 with。eval(..) 函数如果接受了含 阅读全文
摘要:
分离构造器 通过new操作符构建一个对象,一般经过四步: A.创建一个新对象 B.将构造函数的作用域赋给新对象(所以this就指向了这个新对象) C.执行构造函数中的代码 D.返回这个新对象 最后一点就说明了,我们只要返回一个新对象即可。其实new操作符主要是把原型链跟实例的this关联起来,这才是 阅读全文
摘要:
来源:慕课网 jQuery整体架构 jQuery按我的理解分为五大块, 选择器 、 DOM操作 、 事件 、 AJAX 与 动画 , 那么为什么有13个模块?因为jQuery的设计中最喜欢的做的一件事,就是抽出共同的特性使之“模块化”,当然也是更贴近S.O.L.I.D五大原则的“单一职责SRP”了, 阅读全文
摘要:
图 定义:图由边的集合及顶点的集合组成。顶点也有权重, 也称为成本。 如果一个图的顶点对是有序的, 则可以称之为有向图。在对有向图中的顶点对排序后, 便可以在两 个顶点之间绘制一个箭头。 有向图表明了顶点的流向。 如果图是无序的, 则称之为无序图, 或无向图。 图中的一系列顶点构成路径, 路径中所有 阅读全文
摘要:
集合 集合(set) 是一种包含不同元素的数据结构。 集合中的元素称为成员。 集合的两个最重要特性是: 首先, 集合中的成员是无序的; 其次, 集合中不允许相同成员存在。 对集合的三个操作 + 并集 将两个集合中的成员进行合并, 得到一个新集合。 + 交集 两个集合中共同存在的成员组成一个新的集合。 阅读全文
摘要:
散列 基于数组进行设计的数据结构 优点:可以快速插入,删除和取用数据 缺点:查找操作效率低下 在使用散列表存储数据时,通过一个 散列函数 将键映射为一个数字,这个数字的范围是0到散列表的长度。理想情况下从key到index应该是一一对应的,然而键的数量可以是无限的,而数组长度是有限的,因此一个更现实 阅读全文
摘要:
链表 JS中数组被实现成了对象,对比其他语言的数组效率很低。因此可以考虑使用链表来替代。除了对数据的随机访问,链表几乎可以用在任何使用以为数组的情况中。如果需要随机访问,数组仍然是更好的选择。 单向链表 链表是由一组节点组成的集合。 每个节点都使用一个对象的引用指向它的后继。 指向另一 个节点的引用 阅读全文
摘要:
字典 基于Array类构造一个字典类用于储存键值对~~(之前一直不知道JS的Array原来可以存储键值对,第一次看到简直惊呆了)~~ 暂时看到的内容挺简单的,不明白这个的存在意义是什么,感觉还不如直接用JSON来得直接。 直接上代码不解释。 阅读全文
摘要:
排序二叉树 排序二叉树要求父节点的值大于左节点的值,小于右节点的值。 没有父亲节点的节点称为根节点,没有子节点的节点称为叶子节点,其他都称为中间节点。 用JS实现一个排序二叉树 遍历方式 1. 前序遍历(中间节点→左节点→右节点) 2. 中序遍历(左节点→中间节点→右节点) 3. 后序遍历(左节点→ 阅读全文
摘要:
React.js 编写react需要安装的三个开发环境下的模块 + babel 解析JSX + react 实现ui用户界面 + react dom 处理dom JSX:在JavaScript里面写html代码(最好用圆括号包起来,单标签要闭合),在html代码中用插值符号{}可以写js代码 Rea 阅读全文
摘要:
mongodb和mongoose模块 数据库 数据库有 关系型数据库 (MySQL)和 非关系型数据库 (mongodb),两者的语法和数据存储形式不一样。 + mySQL 关系型数据库 类似于表格的形式,每一条数据都是以id为标识 table thead name sex age id tbody 阅读全文
摘要:
koa 基于Node.js的web框架,koa1只兼容ES5,koa2兼容ES6及以后。 koa router模块 koa router是处理路由的模块,和koa它也是中间件模块,在它上面注册的中间件也会有控制权的传递和冒泡一样返回控制权的行为。 koa router对路由的处理:router.me 阅读全文