繁体   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