正在加载...

赋值

上一课的算术符号用来算出新数字。这一课要把结果放进有名字的盒子,并在之后更新它。赋值就是变量如何装进内容——用 =,也用 += 这类简写,意思是「取出旧值,改一下,再存回去」。

什么是赋值?

赋值把值存进变量。左边是名字,右边是值(或能算出值的表达式)。写完 let points = 10; 之后,名字 points 里就是 10。后面的语句可以读这个名字,也可以往里存新值。

运算符一览

📊 常用赋值运算符

运算符 含义 等价于
= 存入 (首次存入或整段替换)
+= 加上再存 x = x + …
-= 减去再存 x = x - …
*= 乘上再存 x = x * …
/= 除后再存 x = x / …
%= 取余再存 x = x % …

把这张表放在手边。每个简写仍然是赋值——只是把运算收进同一条语句。初学者应能把 += 在脑子里展开成 x = x + …。

用 = 存入

javascript
let points = 10;
console.log(points);
let label = "ready";
console.log(label);
let total = 4 + 6;
console.log(total);

用 let 重新赋值

用 let 时,后面的赋值会替换已存的值。计数器、得分、会变的表单字段都常这么做。

用 let 重新赋值

javascript
let score = 0;
console.log(score);
score = 10;
console.log(score);
score = score + 5;
console.log(score);

控制台依次显示 0、10、15。每次 = 都向 score 写入新值。若名字在首次存入后不应再变,用 const——const 会拒绝对该名的第二次赋值。

复合赋值(简写)

简写在一行里既更新又存入。左边仍是同一个名字。

复合赋值

javascript
let n = 8;
n += 2;
console.log(n);
n -= 3;
console.log(n);
n *= 2;
console.log(n);
n /= 4;
console.log(n);
n %= 3;
console.log(n);

从 8 开始。+= 2 后是 10。-= 3 → 7。*= 2 → 14。/= 4 → 3.5。%= 3 → 0.5。一次跟一个简写,直到模式变成本能。

用 += 拼文字

当存的是字符串时,+= 会追加文字。适合一步步拼出一段消息。

用 += 追加

javascript
let msg = "Hi";
msg += " ";
msg += "Sam";
console.log(msg);
let line = "score=";
line += 12;
console.log(line);

msg 变成 "Hi Sam"。line 变成 "score=12",因为把数字接到字符串上会得到文本。这和算术课里 + 的陷阱是同一思路——想清楚要的是数字还是消息。

= 存入;=== 比较

一个等号是存入。三个等号问「值和类型是否相同?」搞混是经典错误:写成 if (x = 5) 会存入 5,而不是比较。

赋值与比较

javascript
let x = 5;
console.log(x);
console.log(x === 5);
console.log(x === "5");
x = 9;
console.log(x === 9);

let x = 5 之后,x 的日志是 5。x === 5 为 true。x === "5" 为 false(数字对字符串)。随后 x = 9 存入新值,于是 x === 9 为 true。比较的深入课在下一节——这里只要分清「存」和「问」。

在页面上更新计数器

存一个起始计数,用 += 往上加,再把结果写到页面上。

用赋值做页面计数器

html
<!DOCTYPE html>
<html>
<head>
<title>Assignment — page counter</title>
</head>
<body>
<p id="out">…</p>
<script>
let clicks = 0;
clicks += 1;
clicks += 2;
let box = document.getElementById("out");
box.textContent = "clicks=" + clicks;
</script>
</body>
</html>

从 0 开始,加 1,再加 2 → 页面显示 clicks=3。改简写、刷新、核对文字。真正的按钮以后可以调用同一思路;这个演示只展示存入与更新。

自己试一试

  1. 存入 let a = 3,打印 a,再赋 a = 7 并再次打印。
  2. 从 let n = 10 开始,执行 n += 4,打印 n。
  3. 在该 n 上执行 n *= 2 并打印。
  4. 构造 let s = "Go",再 s += "!" 并打印。
  5. 并排打印 7 === 7 与 7 === "7"。
  6. 在 HTML 演示里只改第二个简写(+= 2),刷新后读新的 clicks。

常见错误

  • 条件里本该写 === 却写成了 =
  • 首次存入后再给 const 名赋值
  • 忘了左边的变量名(单独的 += 5 无效)
  • 以为 += 只能用于数字——字符串也会追加
  • 把赋值(存入)和纯算术(算出新值却没有目标名)混为一谈

小结

  • = 把值存进变量
  • let 允许之后再存;const 固定第一次存入
  • += -= *= /= %= 一步更新并存入
  • += 既能拼文字也能加数字
  • = 存入;=== 比较——不要对调
  • 下一课:比较——用 ===、!==、<、> 等提问

🧠 测试您的知识

准备开始

测试您的知识

通过这个互动测验挑战自己,看看你对这个主题的理解程度如何

❓
8
问题
🎯
70%
及格要求
♾️
∞
时间
🔄
∞
尝试次数

📝 说明

  • 仔细阅读每个问题
  • 为每个问题选择最佳答案
  • 您可以随时重新参加测验
  • 您的进度将显示在顶部