使用 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) 中执行了相同的测试,并发现了一致的结果:
尝试在 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) 中执行了相同的测试,并发现了一致的结果: