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

相关推荐
小李子呢0211几秒前
Node.js
开发语言·前端·学习·node.js
鱼很腾apoc1 分钟前
【实战篇】 第13期 算法竞赛_数据结构超详解(上)
c语言·开发语言·数据结构·学习·算法·青少年编程
期待のcode3 分钟前
JVM 中对象进入老年代的时机
java·开发语言·jvm
心.c8 分钟前
文件上传 - 入门篇
前端·javascript·vue.js·node.js·js
毕设源码-赖学姐9 分钟前
【开题答辩全过程】以 基于java的医院床位管理系统的设计与开发 为例,包含答辩的问题和答案
java·开发语言
弓.长.10 分钟前
React Native 鸿蒙跨平台开发:实现一个计时器工具
javascript·react native·react.js
Dragon Wu12 分钟前
ReactNative MMKV和React Native Keychain存储本地数据
javascript·react native·react.js·前端框架
lly20240612 分钟前
AJAX PHP 实践指南
开发语言
Never_Satisfied15 分钟前
在JavaScript / HTML中,cloneNode()方法详细指南
开发语言·javascript·html
huwei85317 分钟前
python设计通用表格类 带右键菜单
开发语言·windows·python