首页 > web前端 > js教程 > JavaScript 提升中的'let”和'const”与'var”有何不同?

JavaScript 提升中的'let”和'const”与'var”有何不同?

Barbara Streisand
发布: 2024-12-31 04:18:12
原创
310 人浏览过

How Do `let` and `const` Differ from `var` in JavaScript Hoisting?

提升使用 let 或 const 声明的变量

虽然使用 var 声明的变量在提升过程中的行为符合预期,但使用 let 或 const 声明的变量表现出不同的行为。

全部提升声明

所有 JavaScript 声明(var、let、const、function、function*、class)都会经历提升,这意味着它们在各自范围内的任何位置都可以被识别。

初始化区别

但是,var/function/function* 和 的区别let/const/class 声明在于它们的初始化。从作用域开始时创建绑定那一刻起,Var 声明就被初始化为 undefined。相比之下,let/const/class 声明在其语句被求值之前保持未初始化状态。

未初始化变量的临时死区

此未初始化状态创建了一个“临时死区” “在初始化之前访问变量会导致ReferenceError.

示例:

x = y = "global";
(function() {
    x; // undefined
    y; // Reference error: y is not defined

    var x = "local";
    let y = "local";
}());
登录后复制

提升中的 let 与 const

Let 和 const 的操作方式相同的吊装。它们之间的区别在于,常量必须在声明时赋值。

结论

用 let 或 const 声明的变量会被提升,但它们在内部保持未初始化状态。暂时的死区,直到处理其声明语句。过早访问它们将导致引用错误。

以上是JavaScript 提升中的'let”和'const”与'var”有何不同?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板