有人知道为什么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
。很可能其中至少有一个可以让你做你想做的事情。