⚡ JavaScript

算术运算 — JavaScript

```html

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

想象一下,你是一家糖果店的收银员。一位顾客走过来对你说:“给我3块巧克力,每块50卢布,和2瓶柠檬水,每瓶70卢布。”要计算总金额,你需要乘法(3 × 50 和 2 × 70),然后把结果相加。如果顾客给了500卢布,你需要减法来计算找零。如果糖果每包4个,而你需要10个糖果,你就得除法来算出需要多少包。

在JavaScript中,算术运算的工作原理和数学课上完全一样。只不过你不是在纸上写,而是给计算机下达指令。计算机瞬间就能算出结果,而且永远不会出错(除非你的指令有误)。

为什么程序员需要这个?假设你在写一个游戏,角色在收集金币。每个金币加10分。你需要能够将当前分数加上10。或者,你在为物理课做一个计算器——那就需要用到所有运算。

JavaScript有5种基本算术运算:

  • + — 加法(和学校里一样)
  • - — 减法
  • * — 乘法(用星号,因为键盘上没有×符号)
  • / — 除法(用斜杠,因为键盘上没有÷符号)
  • % — 取余(这是新东西!它显示整除后剩下多少)

与Python不同,Python中除法总是得到小数(例如 10 / 3 = 3.333...),JavaScript中也有小数,但有一个小技巧:JS中的整数在数值很大时可能会表现异常。不过这个我们以后再谈。

主要规则:计算机执行运算的顺序和数学中一样:先乘除,后加减。括号可以改变顺序。记住:先括号,再乘除,最后加减。

带解释的代码示例

我们直接来看示例。打开浏览器控制台(F12 → Console选项卡)或任何在线编辑器,尝试输入代码。所有示例都可以复制并运行。

示例 1:加法和减法——就像在商店里

// 你原来有150卢布。你买了一个45卢布的馅饼。
// 还剩多少钱?
let bylo = 150;
let potratil = 45;
let ostalos = bylo - potratil;
console.log("剩余卢布:", ostalos); // 输出:剩余卢布: 105

// 现在假设妈妈又给了你50卢布买冰淇淋。
let dobavka = 50;
let vsego = ostalos + dobavka;
console.log("现在总共有卢布:", vsego); // 输出:现在总共有卢布: 155

// 顺便说一句,可以直接写数字,不用变量:
console.log(100 + 200); // 300
console.log(500 - 250); // 250

解释: 变量就像带标签的盒子。我们把数字150放进盒子 bylo 里。当我们写 bylo - potratil 时,计算机从盒子里取出数字并相减。结果放入新盒子 ostalos 中。console.log 是“在控制台显示结果”的命令。

在Python中,同样的代码看起来几乎一样,只是不需要 let(Python中直接写 bylo = 150)。JavaScript需要 let(或 const,或 var)来声明变量。

示例 2:乘法——计算购物总价

// 你买了4本笔记本,每本25卢布。
// 需要付多少钱?
let cenaTetradi = 25;
let kolichestvo = 4;
let stoimost = cenaTetradi * kolichestvo;
console.log("笔记本总价:", stoimost); // 100

// 如果需要买3包饼干,每包89卢布,和2瓶果汁,每瓶55卢布呢?
let pechenie = 89 * 3; // 267
let sok = 55 * 2;      // 110
let itog = pechenie + sok;
console.log("应付总额:", itog); // 377

// 可以直接在console.log里计算:
console.log("验证:", 89 * 3 + 55 * 2); // 也是377

// 编程中的乘法用星号 *。
// 数学里写×,键盘上没有,所以用*。
console.log(10 * 10); // 100
console.log(7 * 8);   // 56

解释: 注意:我们没有写 (89 * 3) + (55 * 2),虽然这样写也可以。计算机自己知道乘法优先于加法。但如果你想确保顺序正确,就加括号。括号不会造成干扰,反而让代码更清晰。

建议:在复杂表达式中,像数学里一样总是加上括号。(a + b) * c 和 a + b * c 是不同的。

示例 3:除法——分披萨

// 你有一个8块的披萨。你们有3个朋友(加上你一共4个人)。
// 如果平均分,每人能分到几块?
let kuskov = 8;
let druzei = 4; // 你 + 3个朋友
let kazhdomu = kuskov / druzei;
console.log("每人分到块数:", kazhdomu); // 2

// 如果披萨有10块,你们有4个人呢?
console.log(10 / 4); // 2.5 — 每人2块半

// 除法可能产生小数。在JavaScript中,它们被称为“浮点数”。
console.log(7 / 2); // 3.5
console.log(1 / 3); // 0.3333333333333333 (小数点后很多位)

// 重要:0除以任何数都得0:
console.log(0 / 5); // 0

// 如果一个数除以0呢?会得到Infinity(无穷大):
console.log(10 / 0); // Infinity — 这是JS中的一个特殊值

解释: 在Python中,除法 / 也会得到小数。但Python还有 // —— 整数除法(得到整数部分)。JavaScript没有这个运算符(但可以通过 Math.floor 或 Math.trunc 得到整数,这个我们以后再讲)。

记住:数学中不能除以0,但计算机不会卡住——它会返回 Infinity(无穷大)。

```