【前端面经】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

相关推荐
daols883 分钟前
vue 实现基于 vxe-table 构建多维度产品对比表
前端·javascript·vue.js
前端 贾公子6 分钟前
第08章:中间件(5)
服务器·前端·javascript
ZJU_统一阿萨姆17 分钟前
【推理优化进阶】通信关键路径:NCCL、RDMA 与计算通信重叠
开发语言·人工智能·语言模型·架构·系统架构
我不是疯子是傻子33 分钟前
Qt 程序打包部署全攻略:从 windeployqt 到 Inno Setup 的静默安装与版本迭代实战
开发语言·qt
tech_zjf1 小时前
当 AI 把 Next.js Route 越写越快:我为什么做了 next-route-kit
前端·后端
常宇佳1 小时前
vue3 @代指src路径设置
前端·typescript·vue
砚凝霜1 小时前
软考网络工程师|案例分析:Eth‑Trunk 链路聚合、iStack 堆叠、CSS 集群核心考点总结
前端·css·网络
二级小助手1 小时前
二级Web前端选择题高频真题20道与考场避坑笔记
javascript·css3·html5·web前端·计算机二级·二级web·web真题
珐恩AI-人工智能1 小时前
大模型意图召回偏差分析:GEO如何解决“有收录却不触发问答曝光”的难题
大数据·前端·人工智能·html·流量运营·geo优化
城管不管2 小时前
重生——第十次面试之开源中国一面挂
java·linux·开发语言·算法·面试·职场和发展·开源