JavaScript 吊装
提升是 JavaScript 的默认行为,即将声明移动到 返回页首。
JavaScript 声明被吊起
在 JavaScript 中,变量可以在使用后声明。
换句话说;变量可以在声明之前使用。
示例1 给出的结果与示例 2 相同:
1
1 | x = 5; // Assign 5 to x |
2
1 | var x; // Declare x |
要理解这一点,您必须了解“吊装”一词。
提升是 JavaScript 的默认行为,将所有声明移动到 当前作用域的顶部(到当前脚本或当前函数的顶部)。
let 和 const 关键字
用let
和const
提升到顶部的变量 ,但未初始化。
含义:代码块知道 变量,但在声明之前不能使用它。
在声明变量之前使用let
变量将导致ReferenceError
.
变量从一开始就处于“时间死区” 的块,直到它被声明:
:这将导致ReferenceError
1 | carName = "Volvo"; |
在声明变量之前使用const
变量是一个语法错误, 因此,代码将根本无法运行。
:此代码将不会运行
1 | carName = "Volvo"; |
在 [JS Let / Const] 中阅读有关 let 和 const 的更多信息。
JavaScript 初始化未被吊起
JavaScript 只吊起声明,而不吊起初始化。
示例 1 给出的结果与示例 2 不同:
1-->
1 | var x = 5; // Initialize x |
2-->
1 | var x = 5; // Initialize x |
在最后一个示例中 y 未定义有意义吗?
这是因为只有声明 (var y) 而不是初始化 (=7) 被提升到顶部。
因为吊装,y在使用之前就已经声明了,但是因为初始化不会被提升,y 的值是未定义的。
示例 2 与编写相同:
-->
1 | var x = 5; // Initialize x |
在顶部声明您的变量!
吊装(对许多开发人员来说)是一种未知或被忽视的行为 JavaScript的。
如果开发人员不了解吊装,程序可能包含错误(错误)。
为避免错误,请始终在 每个范围。
由于这是 JavaScript 解释 代码,这总是一个好规则。
严格模式下的 JavaScript 不允许使用变量,如果它们是 未申报。
在下一章中学习使用严格。
0评论