gpt4 book ai didi

javascript - Chrome 控制台 : difference between 'let' and 'var' ?

转载 作者:数据小太阳 更新时间:2023-10-29 05:07:16 27 4
gpt4 key购买 nike

我附上了一个动画 gif 来说明这种奇怪的行为。本质上,我的问题是 Chrome 控制台在相同范围内使用时是否会区别对待 varlet?您会注意到,在声明/分配一个变量后,如果您尝试在控制台中输入该变量的名称,Chrome 会自动为您完成它,并显示一个包含您输入的内容的下拉列表。使用 let 时,情况并非如此。这是错误、功能,还是我遗漏了有关 JavaScript 中的 varlet 的内容?

注意:我很清楚 let 在直接范围内生存和死亡。

enter image description here

最佳答案

当您在控制台中使用 var 时,它会在全局范围内执行并将变量添加到 window 对象。

当您在控制台中使用 let 时,它在全局范围内执行,不会将变量添加到 window 对象。

当您开始键入时,自动完成功能会检查父对象的属性以完成其他语言结构,例如 functionforwhile.

当控制台没有内容时,父对象是window,不会有你要找的属性,因为let没有添加window 的属性。

一旦您有一个新的自动完成对象要完成,行为就会恢复到您期望的状态。

> let foo = {bar: 'baz'};
> foo.b //autocompletes bar

现在,综上所述,没有理由让自动完成必须那样做。在许多方面,通过 let 在全局范围内定义的变量缺少自动完成功能可以被认为是一个值得“修复”的“错误”。在我看来,这是适度令人惊讶的行为。

关于javascript - Chrome 控制台 : difference between 'let' and 'var' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39397126/

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