Javascript | 青训营笔记

44 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第6天

如何写好Javascript

image.png

JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。

各司其职

  • 让HTML、CSS和JavaScript职能分离。
  • 应当避免不必要的由JS直接操作样式
  • 可以用class来表示状态
  • 纯展示类交互寻求零JS方案

组件封装

  • 好的UI组件具备正确性、扩展性、复用性。
  • 组件是指Web页面上抽出来一个个包含模版(HTML)、功能(JS)和样式(CSs)〉的单元。
  • 好的组件具备封装性、正确性、扩展性、复用性。
  • 轮播图是一个典型的列表结构,我们可以使用无序列表ul元素来实现。使用CSS绝对定位将图片重叠在同一个位置;轮播图切换的状态使用修饰符(modifier);轮播图的切换动画使用cSS transition。
  • 组件封装基本方法:结构设计、展现效果、行为设计(API功能、Event控制流)
  • 三次重构:插件化、模板化、抽象化。

过程抽象

  • 应用函数式编程思想。
  • 用来处理局部细节的一些控制方法。
  • 高阶函数
  1. HOF,以函数作为参数,以函数作为返回值,常用于作为函数装饰器。

  2. 函数式编程不是用函数来编程,也不是传统的面向过程编程。主旨在于将复杂的函数符合成简单的函数(计算理论,或者递归论,或者拉姆达演算)。运算过程尽量写成一系列嵌套的函数调用。

  3. JavaScript的函数其实都指向某个变量。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。

  4. Once,为了能够让"只执行一次"的需求覆盖不同的事件处理,我们可以将这个需求剥离出来。这个过程我们称为过程抽象

image.png