都是本人理解,笔记大致概念,不详细也并非完全正确,所以仅供参考。
Flux
首先 Flux 是一个设计思想,是一个架构,它是为了解决某一问题而出现的解决方案,遵循它的思想,即称之 Flux 架构,就比如 Redux 框架的理念大多是受 Flux 架构的启发的。
那么 Flux 架构解决了什么问题呢?
众所周知,MVVM 框架有组件的概念,那么这个组件会存在或使用某些状态,我们需要去更改它的状态,而此时其他组件使用这个状态,那么需要同时去更改那个组建的状态,如果多个组件都使用这个状态,那么需要写大量的代码去更新状态,这样的代码是难以维护的,所以最好的解决方案是,仅仅去用代码维护状态,组件使用此状态,则更新此状态,而同时其它组件使用时,永远是最新状态即可,这就是 Flux 的设计思想。
所以,Flux 分为四部分:
- Active:动作触发器,代表着我们要执行的动作。
- Dispatcher:函数执行器,动作的触发,则需要执行对应的操作。
- Store:状态数据库,执行函数对 Store 进行数据的增、删、改等操作。
- View:视图更新器,Store 的更新,则立即进行视图的更新。
其流程如下图:
Flux 架构的执行过程可知,Flux 的顺序是单向的,也就是所谓的数据的单向流动。
关于 Redux 是基于 Flux 架构的,所以了解 Flux 再去了解它比较合适,详细参考本地址。
JSON
说实话不复习我都不知道,JSON 是 JavaScript 的一个子级。
全称:JavaScript Object Notation
取网上的描述,什么是JSON:
- JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
- JSON 是轻量级的文本数据交换格式
- JSON 虽然使用 JavaScript 语法来描述数据对象,但是 JSON 独立于语言和平台,支持许多不同的编程语言
- JSON 具有自我描述性,更易理解
额,简单说,其实 JSON 大致就是 JS 的对象,只不过进行了一些特定的格式化和规范,更加严谨,比如以下几点:
- 键名需用双引号包裹,值如果是字符串则只能使用双引号包裹。
- 对象最后一个属性或数组的最后一个元素结尾不得带逗号。
- 值不支持复杂元素,如变量、正则等,仅支持对象、数组、字符串、数字、布尔值、null
JavaScript 中,存在JSON对象,可以使用以下基本方法来操作:
- JSON.stringify:将JavaScript对象转换成JSON字符串。
- JSON.parse:将JSON字符串转换成JavaScript对象。
就不举例了,自己 Chrome Console 试试吧。
正则
其实正则也并非 JavaScript 笔记,因为它是个被广泛使用的字符串匹配规则。
不过学习嘛,就记着呗,这里就不写了,有很多的规则要记,看这里的,很详细。
PS:其实记一点简单就行,复杂的在需要的时候翻翻手册就行了。。我是不想背太多的,给头发留点营养吧。
算法
想了想,好像算法也不不能算 JavaScript 笔记,不过还是那句话,学习嘛,就记着呗。
不过算法五花八门,还是得多看看算法题,简单描述恐怕不能说全,简单总结一下面试的时候喜欢问的吧。
- 数组排序
- 数组取最大/小值
- 数组去重
- 数组统计
- 数据交换
- 取随机数据
还是有很多的,其实网上搜罗一下就好,在这里就不写太多了。
网友评论