3.2 数据类型与变量
写完第一段 JavaScript 之后,下一个问题是:程序运行时,信息放在哪里?
程序不只是命令列表。它还会处理一小片数据世界:数字、文本、真假、列表、结构化记录。变量给这些数据起名字,让后面的语句可以继续使用它们。
下面的实验让你选择不同的值,看 JavaScript 怎么识别它们的类型。
正在加载交互实验...
值与变量
值就是一份数据:
js
18
"小叶"
true变量是指向值的名字:
js
let age = 18;
const name = "小叶";let age = 18 可以读作:创建一个叫 age 的变量,把值 18 放进去。之后写 age,就是使用 age 当前保存的值。
let 与 const
现代 JavaScript 用 let 和 const 声明变量:
js
let count = 0; // 之后可以重新赋值
const PI = 3.14159; // 之后不能重新赋值
count = count + 1; // 可以
// PI = 3; // 报错- 默认优先使用
const,表示这个变量不会再指向另一个值。 - 当值确实会变化时使用
let,比如计数器、分数、累计总和。 - 你可能在旧代码里见过
var,新手写新代码时先不要用它。
正在加载概念检查...
常见数据类型
JavaScript 的值有不同类型:
| 类型 | 例子 | 常见用途 |
|---|---|---|
| number(数字) | 42、3.14、-8 | 数量、分数、价格 |
| string(字符串) | "hello"、'A' | 文本 |
| boolean(布尔) | true、false | 是/否条件 |
| undefined | undefined | 变量暂时没有值 |
| null | null | 主动表示“空” |
| array(数组) | [80, 92, 75] | 有顺序的列表 |
| object(对象) | { name: "Leaf", age: 18 } | 带名字的字段 |
可以用 typeof 查看值的类型:
js
console.log(typeof 42); // "number"
console.log(typeof "hello"); // "string"
console.log(typeof true); // "boolean"正在加载概念检查...
注意
typeof [1, 2, 3] 会返回 "object",因为数组在 JavaScript 里是一种特殊对象。第 3.12 节会专门学习数组。赋值与更新
赋值会把新值保存到变量里:
js
let score = 80;
score = 95;更新变量时,右侧先计算,再保存回左侧:
js
let total = 10;
total = total + 5; // total 变成 15
total += 2; // 简写,total 变成 17这个模式非常常见:计数器、总价、进度条、购物车、表单校验,都会用到它。
字符串和数字不同
带引号的是字符串,不带引号的数值才是数字:
js
console.log(18 + 1); // 19
console.log("18" + 1); // "181"第二行会拼接文本,因为其中一边是字符串。如果值来自输入框或 prompt,做数学计算前要先转换:
js
const ageText = prompt("年龄?");
const age = Number(ageText);
console.log(age + 1);正在加载本节练习...