【前端面经】JS 中 var、let、const 变量声明方式及其区别?

JS 中三种变量声明方式及其区别

三种变量声明方式及其区别

var、let、const 的对比

特性 var let const
函数作用域 √(变量在函数中声明时) not only not only
全局作用域 √(变量在函数外声明时) × ×
块级作用域 × √(变量声明的所在代码块) √(变量声明的所在代码块)
重新声明
重新赋值

const 的不可变性const 声明的变量必须初始化,且不能重新赋值。但是对于复杂数据类型(如对象),可以修改其中的内容。

变量的提升

  • var 的提升:变量被提升到作用域顶部并初始化;可以在声明之前访问 ,值为 undefined
  • let 的提升:变量被提升到作用域顶部但不初始化;不可以在声明之前访问 ,会报错 ReferenceError(称为暂时性死区,TDZ)
  • const 的提升:变量被提升到作用域顶部但不初始化;不可以在声明之前访问 ,会报错 ReferenceError(称为暂时性死区,TDZ)

暂时性死区的说明 :所谓暂时性死区,指的是在进入作用域直到变量声明被执行之前的这段时间内,变量是存在的但是无法被访问 ,任何访问都会导致 ReferenceError

相关推荐
徐小夕7 小时前
花了3天,我写了一款开源AI公众号编辑器
前端·vue.js·github
nianniannnn7 小时前
Qt QMessageBox知识点
开发语言·数据库·qt
PBitW7 小时前
git 中容易遗忘的点 (二) ⚡⚡⚡
前端·git·面试
Hilaku7 小时前
2026 年前端大洗牌:React 服务端到 Vite 的底层重构
前端·javascript·程序员
故乡de云7 小时前
AWS 添加付款方式失败排查清单:卡片、银行风控与账号状态逐项定位
开发语言·php
PBitW7 小时前
git 中容易遗忘的点 (三) 🚀🚀🚀
前端·git·面试
名字还没想好☜7 小时前
React setState 连续调用「丢更新」排查:批量更新与函数式更新
前端·javascript·react.js·react·usestate
J_yyy7 小时前
【Qt核心组件类框架】
开发语言·qt
come112347 小时前
Vue 2 与 Vue 3 语法区别及使用技巧
前端·javascript·vue.js
运维行者_7 小时前
如何查看每个IP的带宽使用情况?NetFlow 技术实战指南
开发语言·网络·分布式·后端·架构·带宽