首頁 > web前端 > js教程 > JavaScript 提升中的「let」和「const」與「var」有何不同?

JavaScript 提升中的「let」和「const」與「var」有何不同?

Barbara Streisand
發布: 2024-12-31 04:18:12
原創
313 人瀏覽過

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的操作方式相同的吊裝。 ,但它們在內部保持未初始化狀態。

以上是JavaScript 提升中的「let」和「const」與「var」有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板