使用 Firefox Web 控制台出现意外行为,未定义的相等性无法正常工作

Getting unexpected behaviour with Firefox web console, equality for undefined is not working fine

尝试在 Firefox Web 控制台中编写以下 JavaScript 代码片段时,出现以下意外行为。请参考下图。

当我声明一个变量 x 时,未定义的检查评估为真。但是当我将它定义为“var a”时,我得到了一个看似错误的答案。我已经检查了 Google Chrome,它工作正常。对这种晦涩的行为有何解释?

可能已经有一个名为 a 的全局变量并且它有一个值。 var a; 声明不会创建新变量。尝试将您的代码更改为:

if (a === undefined) {
    console.log("undefined is true");
} else {
    console.log("undefined is false, a = " + a);
}

所以你可以看到变量的值。

我在 Chrome (v51.0.2704.106) 和 Firefox (v47.0.1) 中执行了相同的测试,并发现了一致的结果: