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 最核心的规范之一啦!

相关推荐
东风破_28 分钟前
ESLint 是什么?为什么你的项目需要它?
前端·后端·代码规范
圣殿骑士-Khtangc2 小时前
Go字符串高效拼接性能对比与底层原理分析
服务器·前端·golang
BigTopOne3 小时前
【ijkplayer】 硬解码流程
前端
kyriewen3 小时前
DeepSeek Harness开源第一天我就上手了——和Claude Code的差距比想象中大
前端·ai编程·deepseek
捡田螺的小男孩3 小时前
什么是 Skill?手把手带你写一个简单有用的 Skill!
前端·后端·程序员
IT_陈寒4 小时前
Redis集群这个坑,差点让我通宵
前端·人工智能·后端
2401_858286114 小时前
VSCODE远程链接错误: 无法建立链接,过程试图写入的管道不存在的解决方法
ide·vscode·编辑器
90后的晨仔4 小时前
uni-app 路由跳转与页面导航 —— 终极详解(对标 iOS / Android / 鸿蒙三端原生)
前端
Heo4 小时前
大厂前端调试不能只会debugger
前端·javascript·面试
用户2181697049304 小时前
Flutter (十七) 网络请求
前端