原文英文,约500词,阅读约需2分钟。
📝
内容提要
在JavaScript中,变量声明会提升到作用域顶部,但初始化保持原位。使用var时,未初始化的变量返回undefined;而let和const在初始化前处于“时间死区”,访问会抛出错误。类的提升也类似,必须在声明后才能访问。
🎯
关键要点
-
在JavaScript中,变量声明会提升到作用域顶部,但初始化保持原位。
-
使用var时,未初始化的变量返回undefined。
-
let和const在初始化前处于“时间死区”,访问会抛出错误。
-
类的提升也类似,必须在声明后才能访问。
-
JavaScript在运行代码前会进行“预扫描”。
-
let和const的声明在初始化前会抛出ReferenceError。
-
时间死区是let和const声明在初始化前的状态。
-
函数声明会提升,但对象的初始化不会。
-
类的提升与变量不同,类在定义前处于“时间死区”。
❓
延伸问答
JavaScript中的提升是什么?
提升是指变量声明被移动到作用域顶部,但初始化保持原位的行为。
使用var声明的变量在未初始化时会返回什么?
使用var声明的未初始化变量会返回undefined。
let和const在初始化前有什么特别之处?
let和const在初始化前处于“时间死区”,访问会抛出ReferenceError。
类的提升与变量的提升有什么不同?
类的提升也会发生,但类在定义前处于“时间死区”,不能被访问。
什么是时间死区?
时间死区是let和const声明在初始化前的状态,访问会抛出错误。
函数声明在提升中有什么特点?
函数声明会被提升,允许在声明之前调用该函数。
🏷️