大数跨境

掌握 JavaScript 函数和 DOM 操作

掌握 JavaScript 函数和 DOM 操作 索引目录
2025-07-15
2
导读:关注【索引目录】服务号,更多精彩内容等你来探索!今天,我们将探讨:什么是函数以及它们如何帮助组织您的代码。

关注【索引目录】服务号,更多精彩内容等你来探索!

今天,我们将探讨:

  • 什么是函数以及它们如何帮助组织您的代码。
  • 如何有效地创建和使用函数。
  • 了解函数参数、返回值和范围。
  • DOM 在现代 Web 开发中的作用。
  • 选择、修改和监听 DOM 元素上的事件的技术。
  • 使用这些概念构建完整的石头剪刀布游戏。

理解 JavaScript 函数:轻松实现可重用逻辑

JavaScript 中的函数是用于执行特定任务的代码块。它可以在整个应用程序中多次重复使用,从而帮助您编写更简洁、更易于维护的代码

JavaScript 中的基本函数语法

function sayHello() {
  console.log("Hello, world!");
}

要运行此函数,您可以像这样调用它:

sayHello(); // Outputs: Hello, world!

这个简单的例子展示了函数如何封装可以随时触发的逻辑。


函数中的参数:动态函数

当引入参数时,函数会变得更加强大,参数被视为调用函数时传递给函数的值的占位符。

function greetUser(name) {
  console.log("Hello, " + name);
}

greetUser("Alice"); // Outputs: Hello, Alice
greetUser("Bob");   // Outputs: Hello, Bob

这里,name是一个参数,和"Alice""Bob"传递给参数的实参(函数调用期间提供的实际值)。

您可以传递多个参数:

function addNumbers(a, b) {
  console.log("The sum is:", a + b);
}

addNumbers(5, 10); // Outputs: The sum is: 15

JavaScript 函数返回:获取结果

函数不仅可以像我们一直做的那样记录输出,还可以返回结果以供进一步使用:

function multiply(a, b) {
  return a * b;
}

let result = multiply(4, 6);
console.log(result); // Outputs: 24

返回值允许函数在表达式、赋值和程序的其他部分中使用。


函数作用域:变量存在的地方

在函数内部声明的变量只能在该函数内部访问。这被称为局部作用域

function myFunction() {
  let message = "Inside the function";
  console.log(message);
}

myFunction(); // Outputs: Inside the function
console.log(message); // Error: message is not defined

要访问函数外部的变量,请在全局范围内声明它:

let globalMessage = "Outside the function";

function showMessage() {
  console.log(globalMessage);
}

showMessage(); // Outputs: Outside the function

了解范围有助于防止命名冲突并使调试更容易。


编写函数的最佳实践

  • 保持功能小而集中
    :每个功能都应该做好一件事。
  • 使用描述性名称
    :根据函数的功能来命名函数,例如,calculateTotal()而不是doSomething()
  • 避免副作用
    :尝试保持函数纯粹 - 这意味着除非必要,否则它们不会修改其范围之外的变量。
  • 使用注释或 JSDoc
    :对于复杂的功能特别有用。
  • 默认参数
    :ES6 为函数参数引入了默认值:
function greet(name = "Guest") {
  console.log("Hello, " + name);
}

greet();         // Outputs: Hello, Guest
greet("Alice");  // Outputs: Hello, Alice

理解 JavaScript 中的文档对象模型 (DOM)

文档对象模型 (DOM)是 HTML 文档的编程接口。它将文档的结构表示为对象树,使 JavaScript 能够读取、修改页面内容并对更改做出反应。

将 DOM 视为 HTML 和 JavaScript 之间的桥梁。


JavaScript 中选择 HTML 元素的语法

在操作元素之前,您需要使用如下方法选择它:

  • document.querySelector()
    :选择第一个匹配的元素。
  • document.querySelectorAll()
    :返回所有匹配的元素。
  • document.getElementById()
    :通过ID选择。
  • document.getElementsByClassName()
    :按类别名称选择。

例子:

<p id="intro">Welcome to our site!</p>
<button class="btn">Click me</button>
// By ID
const introParagraph = document.getElementById("intro");

// By class
const button = document.querySelector(".btn");

// By tag name
const paragraph = document.querySelector("p");

在 JavaScript 中修改 HTML 内容

一旦选择,您可以更改元素内的文本或 HTML。

  • textContent
    :更新文本内容。
  • innerHTML
    :更新文本和 HTML(谨慎对待用户生成的内容)。

例子:

introParagraph.textContent = "Welcome back!";
button.innerHTML = "<strong>Submit</strong>";

JavaScript 中的事件监听器代码片段

通过响应用户操作(如点击、按键或表单提交)使您的网页具有交互性。

button.addEventListener("click", function () {
  alert("Button clicked!");
});

您还可以传递命名函数:

function handleClick() {
  console.log("Button was clicked.");
}

button.addEventListener("click", handleClick);

JavaScript 事件监听器实践:动态更新分数

假设你的 HTML 中有一个分数显示:

<p>Your Score: <span id="score">0</span></p>

您可以使用 JavaScript 动态更新它:

let score = 0;

function increaseScore() {
  score++;
  document.getElementById("score").textContent = score;
}

现在每次increaseScore()叫号时,显示的分数都会立即更新。



可以作为复习练习的示例 DOM 项目

  • 交互式待办事项列表
  • 表单验证
  • 图像滑块
  • 暗模式切换
  • 石头剪刀布游戏

我们现在来构建最后一个。


项目:使用函数和 DOM 的石头剪刀布

让我们结合所学知识来创建一个功能齐全的石头剪刀布游戏。

步骤 1:HTML 结构

<h2>Rock Paper Scissors</h2>

<button class="js-rock">Rock</button>
<button class="js-paper">Paper</button>
<button class="js-scissors">Scissors</button>

<p class="js-result"></p>
<p class="js-score">Score: 0</p>

第 2 步:JavaScript 逻辑

let score = 0;

function playGame(playerMove) {
  const moves = ["rock", "paper", "scissors"];
  const computerMove = moves[Math.floor(Math.random() * 3)];

  let result = "";

  if (playerMove === computerMove) {
    result = "It's a tie!";
  } else if (
    (playerMove === "rock" && computerMove === "scissors") ||
    (playerMove === "paper" && computerMove === "rock") ||
    (playerMove === "scissors" && computerMove === "paper")
  ) {
    result = "You win!";
    score++;
  } else {
    result = "You lose!";
    score--;
  }

  document.querySelector(".js-result").textContent =
    `You chose ${playerMove}, Computer chose ${computerMove}. ${result}`;
  document.querySelector(".js-score").textContent = `Score: ${score}`;
}

️ 步骤 3:添加事件监听器

document.querySelector(".js-rock").addEventListener("click", () => {
  playGame("rock");
});

document.querySelector(".js-paper").addEventListener("click", () => {
  playGame("paper");
});

document.querySelector(".js-scissors").addEventListener("click", () => {
  playGame("scissors");
});


本练习包含我们在本文或上一篇文章中未学习过的概念。希望我们能在下一篇文章中进一步讨论这些概念,尤其是 JavaScript 中的条件语句。
在此之前,我希望本文能对你有所帮助,并让你复习一下!


使用函数和 DOM 的高级技巧

1.缓存DOM元素

不要重复查询 DOM — 将引用存储在变量中。

const resultElement = document.querySelector(".js-result");
const scoreElement = document.querySelector(".js-score");

// Later in your function:
resultElement.textContent = "New result...";
scoreElement.textContent = "Score updated";

2.在事件监听器中 使用箭头函数

箭头函数提供了简洁的语法:

button.addEventListener("click", () => {
  console.log("Clicked!");
});

3.事件委托

不要将事件监听器附加到每个元素,而是在父级监听:

document.body.addEventListener("click", function(event) {
  if (event.target.matches(".js-rock")) {
    playGame("rock");
  }
});

这对于动态添加的元素特别有用。


函数和 DOM 操作是原生 JavaScript 和 Web 开发的基础。无论您是构建小型交互功能还是大型应用,了解这些知识都能帮助您:

  • 编写干净、可重复使用的代码。
  • 让您的网站充满活力且反应灵敏。
  • 提高性能和可维护性。

关注【索引目录】服务号,更多精彩内容等你来探索!


【声明】内容源于网络
0
0
索引目录
索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
内容 444
粉丝 0
索引目录 索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
总阅读838
粉丝0
内容444