如何写好JS学习笔记 | 青训营

45 阅读4分钟

1. 什么是JS

JavaScript是一种广泛用于网页开发的编程语言。它是一种动态、解释性的语言,通常用于增强网页的交互性和动态性。JavaScript使得开发者能够在网页中创建复杂的功能、效果和行为,与用户进行实时交互,从而提供更丰富的用户体验。

JavaScript最初被设计用于在网页上执行简单的脚本任务,如表单验证。然而,随着时间的推移,JavaScript发展成了一种功能强大的编程语言,可用于创建复杂的单页面应用(SPA)、动态内容加载、游戏开发、数据可视化、服务器端开发等各种应用领域。

2. 优化JS之各司其职原则

在一个网页中,HTML、CSS和JavaScript分别扮演着不同的角色,协同工作以实现丰富的用户体验和功能。

  • HTML: 定义网页的结构和内容。
  • CSS: 控制网页的外观和样式。
  • JavaScript: 实现交互性、动态效果和功能。

尽管JavaScript可以用来操作样式,但在某些情况下,过度使用JavaScript来处理样式可能会导致一些问题:

  1. 性能问题: 使用JavaScript来操作样式可能会引起性能问题。JavaScript操作样式通常需要访问DOM,而DOM操作是昂贵的,可能会导致页面重排和重绘,从而影响页面的性能和响应速度。
  2. 耦合度增加: 将样式操作分离到CSS中可以提高代码的可维护性和模块化。如果使用JavaScript来频繁地改变样式,可能会导致样式和交互逻辑耦合在一起,使代码变得难以理解和维护。
  3. 可访问性问题: 使用JavaScript来控制样式可能会影响到页面的可访问性。一些屏幕阅读器和辅助技术可能无法正确解释通过JavaScript添加或修改的样式,从而影响到使用这些辅助技术的用户体验。
  4. 兼容性问题: 不同浏览器可能对JavaScript操作样式的实现方式有所不同,可能会导致兼容性问题。相比之下,纯CSS样式更容易跨浏览器保持一致性。
  5. 代码可读性: 将样式操作写在CSS中可以使代码更具可读性。开发人员可以更轻松地理解和维护样式,而不必深入研究JavaScript中的样式操作。
  6. 重复工作: 如果多次使用JavaScript操作相同的样式,会导致代码重复。而将这些样式定义在CSS中,可以通过类名重复使用,从而减少冗余代码。

3. 优化JS之组件封装原则

JavaScript的组件封装是一种将一组相关的功能和代码封装成可重用的、独立的模块或组件的技术。这有助于提高代码的可维护性、可读性和重用性,同时也能够降低代码耦合度,使开发过程更加高效和灵活。许多现代的前端框架(如React、Angular、Vue等)都强调了组件化开发的概念,通过提供组件化的架构和工具,使开发者能够更轻松地构建复杂的前端应用。

4. 优化JS之过程抽象原则

JavaScript的过程抽象是一种编程方法,通过将一系列操作封装到一个函数中,以实现特定的功能或解决特定的问题。过程抽象旨在将复杂的逻辑或操作组织成一个可重用的单元,从而提高代码的可读性、可维护性和可测试性。通过使用过程抽象,开发人员可以将代码分解为更小的、可重用的部分,从而更容易管理和维护代码库,这是现代编程的核心概念之一。

5. JS代码示例

<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <button id="toggleButton">切换样式</button>
  <div id="box" class="box"></div>
  <script src="script.js"></script>
</body>
</html>
.box {
  width: 100px;
  height: 100px;
  background-color: blue;
  transition: background-color 0.3s ease;
}

.box.active {
  background-color: red;
}
const toggleButton = document.getElementById("toggleButton");
const box = document.getElementById("box");

function toggleBoxStyle() {
  box.classList.toggle("active");
}

toggleButton.addEventListener("click", toggleBoxStyle);

JavaScript部分首先获取了按钮和盒子的引用,然后定义了一个名为toggleBoxStyle的函数,该函数在按钮点击时被调用。这个函数使用classList.toggle方法来切换盒子的类名,从而实现了样式的变化。toggleBoxStyle函数是一个过程抽象的例子,它将一系列操作封装在一个函数中,实现了切换样式的功能,使其可以在其他地方重复使用。