介绍
在本实验中,学生将通过一个动手实践的 HTML 和 JavaScript 练习来探索 JavaScript 的比较运算符。实验将引导参与者逐步设置一个 HTML 文件,并演示各种比较运算符,包括大于、小于、相等和严格相等运算符。
参与者将通过编写 HTML 脚本标签中的 JavaScript 代码来学习如何使用比较运算符,尝试不同的数值和值比较,并在浏览器控制台中观察结果。通过本实验,学生将理解如何应用比较运算符来评估值之间的关系,并理解它们在不同场景中的行为。
在本实验中,学生将通过一个动手实践的 HTML 和 JavaScript 练习来探索 JavaScript 的比较运算符。实验将引导参与者逐步设置一个 HTML 文件,并演示各种比较运算符,包括大于、小于、相等和严格相等运算符。
参与者将通过编写 HTML 脚本标签中的 JavaScript 代码来学习如何使用比较运算符,尝试不同的数值和值比较,并在浏览器控制台中观察结果。通过本实验,学生将理解如何应用比较运算符来评估值之间的关系,并理解它们在不同场景中的行为。
在这一步中,你将设置一个基本的 HTML 文件来探索 JavaScript 的比较运算符。我们将创建一个包含嵌入式 JavaScript 脚本的 HTML 文件,以帮助我们理解比较运算符的工作原理。
打开 WebIDE 并导航到 ~/project
目录。创建一个名为 comparison-operators.html
的新文件,内容如下:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>JavaScript Comparison Operators</title>
</head>
<body>
<h1>探索比较运算符</h1>
<p>打开浏览器控制台以查看比较运算符的结果。</p>
<script>
// 我们将在此处添加比较运算符的示例
console.log("HTML 文件设置完成!");
</script>
</body>
</html>
让我们分解一下这个 HTML 文件的关键部分:
<!DOCTYPE html>
声明确保浏览器使用标准模式。<script>
标签,用于编写 JavaScript 代码。console.log()
语句将帮助我们验证文件是否正常工作。要查看文件,通常需要在 Web 浏览器中打开它并检查浏览器的开发者控制台。在我们的 LabEx 环境中,我们将验证文件的创建和内容。
在这一步中,你将学习 JavaScript 中的大于(>
)和小于(<
)比较运算符。打开上一步中的 comparison-operators.html
文件,并修改 <script>
部分以探索这些运算符。
将脚本更新为以下代码:
<script>
// Greater Than (>) Operator
console.log("Greater Than Operator Examples:");
console.log(10 > 5); // true
console.log(5 > 10); // false
console.log(5 > 5); // false
// Less Than (<) Operator
console.log("\nLess Than Operator Examples:");
console.log(5 < 10); // true
console.log(10 < 5); // false
console.log(5 < 5); // false
// Comparing different types
console.log("\nComparing Different Types:");
console.log(5 < "10"); // true (type coercion)
console.log(10 > "5"); // true (type coercion)
</script>
这些示例展示了大于和小于运算符的关键特性:
>
返回 true
>
返回 false
>
和 <
都返回 false
打开浏览器控制台以查看比较结果。每个 console.log()
都会显示比较的结果。
在这一步中,你将探索 JavaScript 中的相等(==
)和不等(!=
)运算符。打开 comparison-operators.html
文件,并使用以下代码更新 <script>
部分:
<script>
// Equality Operator (==)
console.log("Equality Operator Examples:");
console.log(5 == 5); // true
console.log(5 == "5"); // true (type coercion)
console.log(5 == 10); // false
// Inequality Operator (!=)
console.log("\nInequality Operator Examples:");
console.log(5 != 10); // true
console.log(5 != "5"); // false (type coercion)
console.log(5 != 5); // false
// Comparing different types
console.log("\nComparing Different Types:");
console.log(0 == false); // true (type coercion)
console.log(1 == true); // true (type coercion)
console.log("" == false); // true (type coercion)
</script>
关于相等和不等运算符的关键点:
==
运算符在比较之前会执行类型转换(type coercion)==
返回 true
!=
运算符检查值是否不相等,同样会进行类型转换打开浏览器控制台以查看比较结果。每个 console.log()
都会显示比较的结果。
在这一步中,你将学习 JavaScript 中的严格相等(===
)和严格不等(!==
)运算符。打开 comparison-operators.html
文件,并使用以下代码更新 <script>
部分:
<script>
// Strict Equality Operator (===)
console.log("Strict Equality Operator Examples:");
console.log(5 === 5); // true
console.log(5 === "5"); // false (no type coercion)
console.log(0 === false); // false
console.log(1 === true); // false
// Strict Inequality Operator (!==)
console.log("\nStrict Inequality Operator Examples:");
console.log(5 !== 10); // true
console.log(5 !== "5"); // true (no type coercion)
console.log(0 !== false); // true
console.log(1 !== true); // true
// Comparing with type coercion vs. strict comparison
let num = 5;
let strNum = "5";
console.log("\nComparing with == vs. ===:");
console.log(num == strNum); // true (type coercion)
console.log(num === strNum); // false (strict comparison)
</script>
松散比较和严格比较的关键区别:
===
检查值和类型,不进行类型转换(type coercion)!==
是严格不等运算符===
和 !==
打开浏览器控制台以查看比较结果。每个 console.log()
都会显示比较的结果。
在这一步中,你将探索更复杂的比较运算符场景,并学习它们如何与不同类型的值交互。打开 comparison-operators.html
文件,并使用以下代码更新 <script>
部分:
<script>
// Comparing different types and complex scenarios
console.log("Complex Comparison Scenarios:");
// Comparing null and undefined
console.log(null == undefined); // true (type coercion)
console.log(null === undefined); // false (strict comparison)
// Comparing with NaN
console.log(NaN == NaN); // false (special case)
console.log(NaN === NaN); // false
// Comparing objects
let obj1 = { value: 5 };
let obj2 = { value: 5 };
let obj3 = obj1;
console.log("\nObject Comparisons:");
console.log(obj1 == obj2); // false (different references)
console.log(obj1 === obj2); // false (different references)
console.log(obj1 === obj3); // true (same reference)
// Chained comparisons
let x = 5;
console.log("\nChained Comparisons:");
console.log(1 < x && x < 10); // true
console.log(1 < x < 10); // Warning: This doesn't work as expected!
</script>
通过这些实验得出的关键见解:
null
和 undefined
在松散相等和严格相等中的行为不同NaN
永远不会等于它自己打开浏览器控制台以查看比较结果,并理解比较运算符的微妙行为。
在本实验中,参与者通过动手实践 HTML 和 JavaScript 练习来探索 JavaScript 的比较运算符。实验从一个嵌入脚本的基本 HTML 文件开始,使学习者能够理解并练习各种比较技术,例如大于、小于、相等和严格相等运算符。
通过在浏览器控制台中完成实际示例,学生深入了解了比较运算符的工作原理,并学会了如何评估不同类型的数值和值比较。实验提供了一种结构化的方法来理解这些基本的 JavaScript 运算符,使参与者能够尝试不同的场景并观察生成的布尔结果。