初学JavaScript | 青训营笔记

72 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的第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)的单元。

组件设计的原则

封装性、正确性、扩展性、复用性。

组件封装基本方法和步骤:

  1. 结构分析设计
    
  2. 展现效果
    
  3. 行为设计(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:随机数