⚡ JavaScript

比较运算符与逻辑运算符 — JavaScript

```html

这是什么以及为什么需要它?

想象一下,你是一个执行命令的机器人。为了做出决策,你需要能够比较事物并检查条件。例如:

  • 比较:“你有100卢布吗?”(你将你的钱与数字100进行比较)。
  • 逻辑:“你有100卢布 并且 你不饿吗?”(同时检查两个条件)。

在JavaScript中,比较运算符和逻辑运算符帮助计算机回答这类问题。结果总是 true(真)或 false(假)。这就像一个红绿灯:绿灯——可以走(true),红灯——停下(false)。

为什么需要它们?没有它们,程序会很无聊——它们只会按顺序执行命令。而有了它们,程序可以对不同的情况做出反应:例如,如果用户输入了正确的密码,就让他进入;如果没有,就显示错误。

在Python中,这些运算符的工作方式几乎相同,但JavaScript有其自己的技巧。我们将逐一分析它们。

带解释的代码示例

1. 基本比较运算符:>, <, >=, <=

最简单的——就像数学课上一样。比较数字:

// 示例 1:大于或小于?
let возраст = 12;
let можноВойти = возраст >= 12; // 如果年龄是12或更大,可以进入吗?
console.log(можноВойти); // 输出:true (因为 12 >= 12 — 真)

// 示例 2:与阈值比较
let температура = 30;
let жарко = температура > 25;   // 大于25?
console.log(жарко); // true (30 > 25 — 真)

let холодно = температура < 10; // 小于10?
console.log(холодно); // false (30 不小于 10)

// 示例 3:字符串也可以比较!
console.log("арбуз" > "банан"); // false
// 为什么?字母按字母顺序比较:'а' (第1个字母) 小于 'б' (第2个字母)
// 在Python中也是如此,但那里的大小写敏感性不同

重要提示: 在JavaScript中,字符串按Unicode编码(如同在表格中)进行比较。“а”小于“я”,而“А”小于“а”。这就像字典:先是大写字母,然后是小写字母。

2. 相等运算符:== 和 ===

这里开始变得有趣!在JavaScript中,有两种方法可以检查值是否相等:

  • == — “非严格相等”(比较值,但可能会转换类型)
  • === — “严格相等”(同时比较值和数据类型)
// 示例 4:数字和字符串的比较
let число = 5;
let строка = "5";

console.log(число == строка);   // true — 因为 5 等于 5 (JavaScript 将字符串转换为数字)
console.log(число === строка);  // false — 因为数字 (number) 不等于字符串 (string)!

// 在Python中没有这种情况:"5" == 5 会直接返回 False,没有转换

// 示例 5:与 true/false 比较
console.log(1 == true);  // true — 因为 true 被转换为 1
console.log(1 === true); // false — 类型不同 (数字 vs 布尔值)

console.log(0 == false); // true
console.log(0 === false); // false

// 示例 6:空值
console.log(null == undefined); // true — JS 的特殊规则
console.log(null === undefined); // false — 类型不同

// 在Python中没有 undefined,只有 None,并且它除了自身之外不与任何东西相等

给新手的建议: 始终使用 ===(严格相等)以避免意外。这就像在数学中:5 和 “5” 是不同的东西,尽管看起来相似。

3. 逻辑运算符 &&(与)

“与”运算符 (AND) 仅当 两个 条件都为真时才返回 true。在生活中就像:“如果做完作业 并且 妈妈允许,我就去散步”。

// 示例 7:检查两个条件
let возраст = 14;
let естьБилет = true;

let можно_в_кино = (возраст >= 12) && (естьБилет === true);
console.log(можно_в_кино); // true — 年龄符合 并且 有票

// 如果年龄是10:
возраст = 10;
можно_в_кино = (возраст >= 12) && (естьБилет === true);
console.log(можно_в_кино); // false — 第一个条件为假,第二个为真,但“与”要求两者都为真

// 示例 8:复杂条件
let оценка = 4;
let поведение = "отлично";

let похвалят = (оценка === 5) && (поведение === "отлично");
console.log(похвалят); // false — 分数不是5,尽管行为是优秀的

// 在Python中写法相同:and

小技巧: JavaScript 是“懒惰的”——如果 && 中的第一个条件为假,它甚至不会检查第二个。这被称为“短路求值”。节省时间!

4. 逻辑运算符 ||(或)

“或”运算符 (OR) 如果 至少一个 条件为真,则返回 true。就像在生活中:“如果做完作业 或者 外面有太阳,我就去散步”。

// 示例 9:从两个选项中选择
let естьДеньги = false;
let естьПодарок = true;

let можно_купить_игру = естьДеньги || естьПодарок;
console.log(можно_купить_игру); // true — 没有钱,但有礼物(一个条件为真)

// 示例 10:检查年龄
let возрастПользователя = 17;
let входРазрешен = (возрастПользователя >= 18) || (возрастПользователя >= 16 && естьБилет);
// 如果年龄 >=18 或者 (年龄 >=16 并且有票)
console.log(входРазрешен); // false — 17 不小于 18,并且虽然 17>=16,但 естьБилет 未定义 (undefined — 这是 false)

// 示例 11:默认值
let имя = "";
let отображаемоеИмя = имя || "Гость";
console.log(отображаемоеИмя); // "Гость" — 因为空字符串被视为 false

// 在Python中:имя or "Гость" — 工作方式相同

技巧: || 也是“懒惰的”——如果第一个条件为真,则不检查第二个。这用于设置默认值。

5.

```