JS中var let和const的区别

发布时间:2026/10/5 12:10:02

JS中var let和const的区别
在JS中的学习中 有些新手会遇到不少问题 比如 let为何不能为什么声明同一个变量时 会出现爆红的现象 今天 就讲一讲var let const这三者的区别1.varvar相对于另外let const 它的自由性更高 比如 在同时声明同一个变量时 并不会像let那样爆红 而是可以正常运行 主要是因为 JavaScript 语法本身允许这种写法并且var关键字具有非常宽容的底层机制var a 1; var a 2; // 不会报错a 的值被更新为 2同时 var还可以做变量提升 js引擎会先将所有var声明的变量提升到最开始再按照代码执行顺序此一执行比如 你写的代码console.log(myName); // 输出: undefined而不是报错 var myName Tom;到了JS引擎执行代码的时候则变成了var myName; // 1. 声明被提升到顶部此时值为 undefined console.log(myName); // 2. 打印 undefined myName Tom; // 3. 赋值留在原地执行2.letlet则是和var截然相反 它既不可以提升变量 也不能做提升 必须先声明变量在使用变量 不然会直接报错在同一个区域内 let不允许重复声明同一个变量 这能帮你提前发现命名冲突let dog 狗; let dog 猫; // 报错SyntaxError: Identifier dog has already been declared与var不同的是 let声明的变量必须在声明后才能使用 在声明之前访问它 则会进入“暂时性死区” 会直接报错console.log(b); // 报错ReferenceError: Cannot access b before initialization let b 20;3.constconst它的核心作用是声明一个只读的常量除了具备let的优良特性const还有自己最核心的专属规则声明时必须赋值 否则JS会直接报错const PI; // 报错SyntaxError: Missing initializer in const declaration const PI 3.14; // 正确不会报错基本数据类型值不可变对于基本数据类型const保证该变量的值永远无法被修改const name Tom; name Jerry; // 报错TypeError: Assignment to constant variable.

相关新闻

Claude模型列表选择FAQ:最困惑的15个问题全部解答

Claude模型列表选择FAQ:最困惑的15个问题全部解答

2026/8/23 0:51:43

Claude 模型列表越来越长,haiku、sonnet、opus,claude 3 还是 claude 3.5 还是 3.7……选哪个?贵在哪里?差在哪里?本文整理了开发者和团队用户最常见的 15 个困惑,用清晰的问答格式一次解答。 版本选择类&a…

GPT-Image-2 文生图:产品场景提示词撰写指南

GPT-Image-2 文生图:产品场景提示词撰写指南

2026/9/9 12:42:36

摘要:在AI电商素材生成场景中,纯产品棚拍图同质化严重,而带场景的产品效果图氛围感更强、转化效果更佳。本文基于GPT-Image-2模型特性,系统讲解产品场景文生图的撰写逻辑、场景分类、标准化模板与避坑方案,适配美妆、数…

解锁老旧Mac的终极性能重生:OpenCore Legacy Patcher深度解析

解锁老旧Mac的终极性能重生:OpenCore Legacy Patcher深度解析

2026/8/30 4:18:53

解锁老旧Mac的终极性能重生:OpenCore Legacy Patcher深度解析 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为苹果官方放弃支持的老旧Mac设…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/10/4 10:56:09

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/10/4 10:54:41

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/10/5 11:17:40

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/10/4 17:30:40

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/10/4 5:19:11

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/10/4 10:55:30

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…