JavaScript变量声明有var、let、const三种:var函数作用域、可重复声明、提升但赋值不提升;let块级作用域、不可重复声明、存在暂时性死区;const块级作用域、必须初始化且不可重新赋值,对象内部仍可修改;推荐默认用const,需重赋值时用let,避免var。

JavaScript 中变量声明主要有 var、let 和 const 三种方式,它们在作用域、提升(hoisting)、重复声明和可变性上存在关键区别。
var 声明:函数作用域 + 变量提升
var 是 ES5 及之前唯一的方式,具有函数作用域(不是块级),且存在变量提升——声明会被“移动”到当前作用域顶部,但赋值不会。
- 可在同一作用域内重复声明同名变量(不会报错)
- 在声明前访问会得到
undefined(而非 ReferenceError) - 在 if 或 for 等块中声明,仍可在块外访问
let 声明:块级作用域 + 暂时性死区
let 引入于 ES6,提供真正的块级作用域(如 if、for、{} 内),且不会被提升到块顶部。
- 不允许在同一作用域内重复声明(会报 SyntaxError)
- 在声明前访问会触发 ReferenceError(处于“暂时性死区”TDZ)
- 适合用于可能重新赋值的变量,比如循环计数器、临时中间值
const 声明:块级作用域 + 不可重新赋值
const 同样是 ES6 引入,也具块级作用域和 TDZ 行为,但声明时必须初始化,且不能再次赋值。
随缘网络PHP企业网站管理系统V2.0正式发布,该企业网站管理系统采用PHP+MYSQL编写,界面色调风格延续之前1.0版管理系统简洁浅蓝色风格,稍有所变动。变更分类树形目录方式采用jquery库,产品,文章三级无限分类。希望大家能够喜欢。系统中难免有些小问题,希望大家在使用中有什么问题可到本站论坛提出,我们将总结各问题后给予修正并升级。本站再次声明对于免费版系列系统本站不提供QQ电话等技术咨询服
立即学习“Java免费学习笔记(深入)”;
- 声明后不可用
=赋新值(对基本类型严格不可变;对对象/数组,其引用不可变,但内部属性/元素可修改) - 适合声明不打算改变的值,如配置项、DOM 元素引用、函数表达式等
- 即使声明的是对象,也建议优先用 const,除非明确需要后续重新指向另一个值
实际使用建议
现代 JavaScript 开发中,推荐默认使用 const,仅在确实需要重新赋值时改用 let,避免使用 var(除非需兼容极老环境或有意利用其函数作用域特性)。
- 用 const 声明不变更的变量,代码更清晰、不易误改
- let 适用于 for 循环中的 i、累加器、条件分支中不同赋值的变量
- var 容易引发意料外的作用域和提升问题,已不推荐在新代码中使用









