gpt4 book ai didi

javascript - JavaScript 中 let 和 var 的区别

转载 作者:行者123 更新时间:2023-12-03 12:37:55 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What is the difference between "let" and "var"?

(37 个回答)


6年前关闭。




我正在浏览 Airbnb (https://github.com/airbnb/javascript) 的 javascript 样式指南。

在 2.2 节中解释了

let 是 block 范围的,而不是像 var 那样的函数范围。

// bad
var count = 1;
if (true) {
count += 1;
}

// good, use the let.
let count = 1;
if (true) {
count += 1;
}

我不明白为什么第一个是不好的做法,第二个是不好的,如果 let 和 var 都是 block 作用域,那么如果我使用它们中的任何一个,它有什么区别?

另外,函数作用域和 block 作用域之间有什么区别?

最佳答案

当某些东西是 block 作用域时,这意味着您可以更好、更直观地控制生命周期

例如

function a() {
if (true) {
var a = 7;
let b = 42;
}
}

var a 在函数范围内被拉出,而不是在 if 的 block 中被隔离,所以像这样;
function a() {
var a; // The JS compiler pulls the var out to this level
if (true) {
a = 7;
let b = 42; // but keeps the let in this block.
}
}

.. 这是违反直觉的,有时会导致问题—— let没有那个问题。

关于javascript - JavaScript 中 let 和 var 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37124640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com