为什么 JavaScript IDE 不像编译语言 IDE 那样表示错误?

Why do JavaScript IDEs not denote errors as in compiled language IDEs?

我很好奇为什么在几乎每个 JavaScript IDE 中(比如在 WebStorm 中),未解析的变量或类型(以及任何其他错误)都只是用浅灰色线下划线,如图所示.

与此相反,编译语言 IDE(如 CLion)用清晰可见的红线指示错误,表明有一些重要的事情需要识别。我知道符号可以修改,但我不明白默认符号背后的逻辑。

我也不知道为什么 JavaScript IDE 允许你 运行 这个项目,如果有错误的话。我想,因为 JS 是一种解释型语言?

Javascript 变量在运行时查找。您的 HTML 页面完全有可能包含一些其他第 3 方脚本,该脚本设置一个 全局 变量,然后您的代码会在运行时访问该变量。因此,即使看起来变量未定义是因为 you 没有定义它,但变量 will 完全有可能在运行时存在IDE 根本无法静态跟踪。