在Firefox中重新声明javascript中的const x



有人知道为什么Firefox一直给我这个const x错误的重新声明吗?

在Firefox的控制台中,我编写了以下代码。然而,当我第一次运行它时,它很好。第二次或第三次以及随后的时间都不行。不好的是,它给了我一个错误重新声明const x。我不知道为什么,因为我没有重新声明x。对于上下文,我仍然在努力学习Javascript,这让我发疯。
const x = 5;
console.log(x*8);

运行以下代码的结果

我很沮丧,我想把我所有的头发都拔出来。不管怎样,我看了youtube上的视频,这个视频推荐我应该使用Firefox。摆弄了一会儿之后,我手动刷新页面并重新运行代码。每次运行代码刷新页面后,都没有出现错误。然而,我的问题是为什么我每次都要手动刷新页面才能正常工作?有自动刷新功能吗?它只是在const变量中给我一个错误吗?这是一个bug还是正常的Firefox?

我在学习的时候也经历过这种情况。原因是您的变量被保存在本地。这意味着您不需要每次都重新声明它。对于测试,您可以声明它,按enter,然后console.log(x)。

刷新时工作的原因。是因为变量只保存在本地。刷新后,将其重置为新的服务器响应。

不只是Firefox,其他浏览器也可能有这种行为——例如,Chrome直到几年前都是如此。

问题是,你进入浏览器控制台的一切都被解释为发生在全局范围内,当你声明const x = 5;,然后在稍后的同一"会话"中再次这样做;(无需刷新页面),就像在实际脚本中连续执行这些语句一样。也就是说,就好像您正在执行.js文件中的脚本,如下所示:

const x = 5;
console.log(x*8);
const x = 5;
console.log(x*8);

显然,执行这样的脚本将导致"重新声明const";错误,并且由于我所描述的原因,在控制台中也会发生相同的情况。

要避免这种情况,要么选择一个新的变量名,要么使用var而不是const。或者使用let并使用x = 6或其他更改值,而第二次不使用const。很可能其中至少有一个可以让你做你想做的事情。

最新更新