JavaScript 变量:let 和 const 该用谁?

JavaScript 变量:let 和 const 该用谁?

生活中的例子 01

游戏得分:分数会一直变,所以用 let。

生活中的例子 02

圆周率 (π):数学常数永远是 3.14...,所以用 const。

生活中的例子 03

用户的出生年份:这个永远不会变,必须用 const。

生活中的例子 04

购物车商品数量:随时可能增加或减少,用 let。

新手入门指南

COPY

嘿,朋友!来聊聊 JS 的"盒子"

欢迎来到 JavaScript 的世界!今天我们要解决一个让无数新手纠结的问题:写代码时,我到底该用 let 还是 const

别被这两个英文单词吓到了,其实它们的道理就像你整理房间一样简单。

1. 想象你在搬家(生活中的类比)

想象你正在打包东西搬家,你手里有两种箱子:

  • 普通的开口纸箱 (`let`)

你在箱子上贴个标签叫"今天的零食"。你可以把里面的薯片拿出来,换成饼干,再换成苹果。里面的东西是可以随时更换的。

  • 透明的密封展示柜 (`const`)

你在柜子上贴个标签叫"我的奖杯"。一旦把奖杯放进去,你就用强力胶把柜子封死了。里面的东西放进去就不能换了(至少不能整个换掉)。

在代码里,这就是 letconst 的区别。

2. 它们到底是啥?

  • `let` :代表 "Let it change"(让它变)。当你定义一个变量,并且你知道以后肯定会修改它的值时,就用它。
  • `const` :代表 "Constant"(常量/不变)。当你定义一个值,并且你想向全世界宣布:"嘿!这个值永远不许改!"时,就用它。

3. 代码是怎么写的?

让我们来看看实际的代码长什么样。这比你想象的要容易得多。

`let` 的例子:游戏计分

复制代码
// 游戏开始了,初始分是 0
let score = 0;

// 你打中了一个怪兽!
score = 10; 
// 没问题!因为是用 let 定义的,盒子是开口的,我们可以改写它。

console.log(score); // 输出:10

`const` 的例子:出生年份

复制代码
// 你的出生年份是固定的
const birthYear = 1998;

// 试图修改它...
birthYear = 2000; 
// ❌ 报错!电脑会大喊:“Assignment to constant variable.”
// 意思就是:兄弟,这是个密封柜子,你不能改!

4. 一个新手最容易犯的错误

很多初学者觉得:"既然 let 那么灵活,我干脆全部都用 let 好了,省得报错!"

这是一个巨大的陷阱!

最佳实践是:默认全都用 `const`。

为什么?因为 const 会保护你不小心改掉不该改的东西。当你写代码时,如果发现某个变量确实需要变化(比如循环里的计数器 i,或者上面的 score),这时候再回头把它改成 let

这样做会让你的代码更安全,读你代码的人也更清楚:"哦,这个是用 const 定义的,所以我知道它在后面绝对不会变。"

5. 总结一下

  • 如果要变,用 `let`
  • 如果不变,用 `const`
  • 如果不确定,先写 `const`,等报错了再改也不迟!

哪怕你是编程小白,只要记住"密封柜"和"开口箱"的区别,你就已经掌握了现代 JavaScript 最核心的规范之一啦!

相关推荐
candyTong7 小时前
一觉醒来,大模型就帮我排查完页面性能问题
前端·javascript·架构
魔术师Grace7 小时前
我给 AI 做了场入职培训
前端·程序员
玩嵌入式的菜鸡7 小时前
网页访问单片机设备---基于mqtt
前端·javascript·css
weixin_402278458 小时前
解决打开vscode编辑器ctrl+鼠标左键不能跳转定义问题 环境C++
vscode·编辑器·计算机外设
前端一小卒8 小时前
我用 Claude Code 的 Superpowers 技能链写了个服务,部署前差点把服务器搞炸
前端·javascript·后端
滑雪的企鹅.9 小时前
HTML头部元信息避坑指南大纲
前端·html
一拳不是超人9 小时前
老婆天天吵吵要买塔罗牌,我直接用 AI 2 小时写了个在线塔罗牌
前端·ai编程
excel11 小时前
如何解决 Nuxt DevTools 中关于 unstorage 包的报错
前端
Rust研习社11 小时前
使用 Axum 构建高性能异步 Web 服务
开发语言·前端·网络·后端·http·rust
C澒11 小时前
AI 生码 - API2Code:接口智能匹配与 API 自动化生码全链路设计
前端·低代码·ai编程