gpt4 book ai didi

javascript - 为什么这里的变量声明据说是多余的

转载 作者:行者123 更新时间:2023-11-30 11:18:15 24 4
gpt4 key购买 nike

我有这个方法:

  getRandomKey(){
const r = Math.floor(Math.random()*this.lookup.size);
let i = 0, k = null;
for(k of this.lookup.keys()){
if(i === r) {
break;
}
i++;
}

return k;
}

我的 IDE (Webstorm) 是这样说的:

enter image description here

我以前见过这样的事情,我很确定你需要声明变量 k 否则它将是全局的,我在这里错过了什么?

最佳答案

你需要声明它以避免隐式全局,但你不需要初始化它(你不需要给它赋值)。

我想您的 IDE 已经充分分析了您的代码,知道 this.lookup.keys() 至少有一个元素,因此 k 永远不会停留在 null,并且一开始就将其分配为 null 毫无意义;尽管我不认为这是有问题的(如果将来 this.lookup 被修改为空并且您希望此函数返回 null 而不是 怎么办?在这种情况下未定义

您的 IDE 也可能认为任何分配 null 的变量声明语句都是多余的,因为它不区分 nullundefined .不过,这完全是 IDE 中的错误。

关于javascript - 为什么这里的变量声明据说是多余的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50712385/

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