bug: 不同if else分支里let声明的同名变量互相干扰

示例代码如下:
if (a) {
let itemname = undefined;
// do something
} else {
let itemname = f(x)
console.log(itemname)
if (itemname != undefined) {
console.log(b[itemname])
}
}
游戏运行和单步调试时,发现log能正确打印itemname的值,但是接下来的if(itemname != undefined)分支里,b[itemname]里itemname是undefined。把else分支里的itemname 换个名字,就没有问题了。换了chrome和edge浏览器都一样。最神奇的是,什么都没干,第二天又没有bug了。。感觉自己是不是疯了

看到你b[itemname]的写法,我觉得可用多检查检查逻辑;