JavaScript 编码原则 | 青训营

55 阅读2分钟

JavaScript 编码原则

一、各司其职

HTML/CSS/JS各司其职

应当避免不必要的由JS直接操作样式

可以通用class来表示状态

纯展示类交互寻求零JS方案

个人见解:我认为组件化和模块化是Javascript各司其职最大的表现。使用模块系统(如ES6的importexport)将代码分割成小的、可独立管理的模块。每个模块可以专注于特定的功能,并与其他模块进行交互。使用组件库(如React、Vue、Angular)创建可复用的UI组件。每个组件负责自己的UI渲染和逻辑,从而实现"各司其职"的原则。这样我们可以使代码更易于理解维护和扩展,每个部分都有明确的责任。

二、组件封装

轮播图案例

结构:HTML

表现:CSS

行为:JS

  • 行为API

  • 控制流

组件封装

  • 插件化

对象封装

个人见解:使用对象字面量或构造函数创建一个对象,将相关属性和方法组织在一起。这可以用于创建可配置和可重用的对象。

类封装

个人见解:使用ES6引入的类和面向对象编程思想,将相关属性和方法封装在一个类中。这样的类可以实例化,每个实例都可以具有自己的状态和行为。

组件库

创建一个包含多个组件的库,每个组件都具有特定的功能和样式。流行的JavaScript框架和库(如React、Vue、Angular)就提供了这样的组件封装机制,允许开发人员构建复杂的用户界面。

三、过程抽象

JavaScript中的过程抽象是指将一系列操作或功能封装成一个可复用的、高层次的函数或过程,以便在代码中以更简洁的方式执行这些操作。

  • 有助于减少重复代码
  • 提高代码的可读性和可维护性
  • 同时还可以降低出错的风险

例子:

假设在多个地方需要计算两个数的平均值。可以使用过程抽象来创建一个函数来计算平均值,然后在需要的地方调用这个函数,而不是每次都编写相同的平均值计算代码。

// 过程抽象前
let num1 = 10;
let num2 = 20;
let average = (num1 + num2) / 2;
console.log(average);

// 过程抽象后
function calculateAverage(a, b) {
  return (a + b) / 2;
}

let num1 = 10;
let num2 = 20;
let average = calculateAverage(num1, num2);
console.log(average);

四、课程小结

学习JavaScript的编码原则是我如何利用JavaScript来产出高质量的代码,重复代码是一种浪费时间和资源的做法,在之后的学习过程中模块化和组件化应该时刻牢记心中,利用Javascript的语言特性写出更优雅的代码