这是我参与「第四届青训营 」笔记创作活动的第3天
JS是一种具有(轻量级、解释性)或(即时编译型语言)的脚本语言。
1.1-JS的组成
JS是由:ECMAScript、DOM、BOM组成。
-
ECMAScript:描述了该语言的语法和基本对象。 -
BOM(文档对象模型):处理网页内容的方法和接口。 -
DOM(浏览器对象模型):与浏览器进行交互的方法和接口。
2.JS原则
写好JS的一些原则: 各司其责、组件封装、过程抽象。
2.1-各司其责:
-
让HTML、CSS和JavaScript职能分离,避免不必要的由JS直接操作样式。 -
可以用Class来表达状态。 -
纯展示类交互寻求零JS方案。
2.2-组件封装:
什么是组件?
组件是指web页面上抽出来的一个个包含模板(HTML)、功能(JS)和样式(CSS)的单元。
组件设计的原则
封装性、正确性、扩展性、复用性。
组件封装基本方法和步骤:
-
结构分析设计 -
展现效果 -
行为设计(API(功能)、Event(控制流))
组件封装的三次重构
- 插件化:将控制元素抽取成插件、插件与组件之间通过依赖注入方式建立联系。
- 模板化:将HTML模板化,更易于kuoz。
- 抽象化(组件框架):将组件通用模型抽象出来。
3.JS的数据类型
JavaScript的六大基本数据类型:
number(数字)、String(字符)、Boolean(布尔)、null(空占)、undefined(未定义)、object(引用对象)
### 3.1-判断基本数据类型方法:
判断基本数据类型方法有四种:
- typeof:
```
是可以对基本类型做出准确的判断,但对引用类型就有点力不从心,type返回一个表示数据类型的字符串。
- instanceof:
```
判断是否是某个类的实例。
- constructor:
```
查看对象对应的构造函数。
- Object.prototype.toString:
```
可以立即判断出所有的类型,也是判断数据最简单的判断方法。
## 4.过程抽象
#### 4.1-什么是过程抽象
为了能够让只执行一次的需求覆盖不同的事件处理,我们可以将这个需求剥离出来。这个过程我们称为过程抽象。
特点:
- ```
用来处理局部细节控制的一些方法
- ```
函数式编程思想的基础应用
### 4.2-什么是高阶函数
高阶函数式对其他函数进行操作的函数,它接收函数作为参数或将函数作为返回值输出。
特点:
- ```
以函数作为参数
- ```
以函数作为返回值
- ```
常用于作为函数装饰器
### 4.3-常用的高阶函数
- Once:是一个简单执行一次的函数,无视后来产生的多次执行请求。
- Throttle:一个函数持续地、频繁地触发,那么让它在一定时间间隔后再触发。
- Debounce:一个函数持续地触发,那么只在它结束后过一段时间只执行一次
- Consumer:每隔一段时间才会去调用函数,但是会根据用户需求次数执行到底。
- lterative:可迭代方法,它会返回新的函数,在新的函数中并进行判断,如果可迭代,则迭代的调用新函数里的方法,如果不可迭代,只执行一次。
## 5.编程范式
编程范式有三种:命令式、声明式和函数式。
### 5.1-命令式
命令式编程:是关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么。。
5.2-声明式
声明式编程:是以数据结构的形式来表达程序执行的逻辑。即告诉计算机应该做什么,但不指定具体要怎么做
### 5.3-函数式
函数式编程:以函数为第一位,即函数可以出现在任何地方,可以把函数作为参数传递给另一个函数, 即关注做什么而不是怎么做。
6.JS的常见数学方法
Math.round:四舍五入
Math.ceil:向上取整
Math.floor:向下取整
Math.pow:求幂
Math.max:求最大值
Math.min:求最小值
Math.radom:随机数