首页 > 解决方案 > 为什么 Chrome 和 Vscode(使用 Chrome)之间的参考错误不同?

问题描述

这是一个非常简单的案例。相同的用例,使用相同的v8引擎,但为什么会出现不同的错误?

在此处输入图像描述

在此处输入图像描述

标签: javascriptgoogle-chromevisual-studio-codev8

解决方案


Chrome 的控制台对某些事情使用了稍微特殊的规则,我猜在这种情况下会导致生成稍微不同的错误消息。如果将代码段aa; let aa放入常规脚本(或网站 shell)中,您将看到“初始化前无法访问 'aa'”消息。

一个为什么需要控制台的特殊规则的例子:在常规代码中,你不能重新声明let变量:let aa = 1; let aa = 2是一个错误。但是在控制台中,我们通常会尝试各种片段,如果我们只有一次声明的机会,那就太烦人了aa——这就是为什么在控制台上,你可以写let aa = 1然后let aa = 2第二行不会抛出错误。

就是说:可以保证的是,您将获得ReferenceError. 之后的特定消息没有标准化,是为了方便开发人员,并且在不同的实现(或它们的版本)中可能会有所不同。


推荐阅读