簡體   English   中英

為什么要在JavaScript中使用功能范圍?

[英]Why let at function scope in JavaScript?

我理解letvar的塊與函數作用域(或者我以為我做過)。 最近我遇到了一些使用let函數范圍的JavaScript,我認為它等同於使用var ,如:

function xyz ( abc ) {
    let mno = abc - 1;   /* or whatever */
    ...
}

它與使用var之間是否有任何功能差異? 或者它只是一種風格的東西?

函數范圍內的一個區別是,如果您在定義之前嘗試引用let ,則會出現臨時死區

function example() {
    console.log(a); // undefined
    console.log(b); // ReferenceError: b is not defined
    var a = 1;
    let b = 2;
}

沒有任何區別。 這是不是一種風格的東西還是怎么的誤解varlet的工作。 也許原作者(編寫你看到的函數的人)認為letconst (在Swift這樣的語言中 幾乎就是這種情況)。 換句話說,有時人們將樣式/語法從一種語言帶到另一種語言,因為聲明看起來很相似,但實際上意味着完全不同的東西。

我理解let&var的塊與函數作用域(或者我以為我做過)

別擔心,你這樣做。 正如你所指出的那樣, let進行塊區域划分。

根據這個答案 ,你所描述的情況沒有區別,它們在功能上與它們在功能范圍內都是一樣的。 正如您猜測的那樣,可能只是想要在定義變量時保持一致的人(或者linter)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM