首页 > 解决方案 > 为什么结果与我预期的不同?

问题描述

emptyWord = '';

if (emptyWord !== false) {
    console.log(1);
} else {
    console.log(2);
}

如果 emptyWord 为假,我希望else运行。如果 emptyWord 为真,我希望console.log(1)运行。

我实际上希望console.log(2)跑步。因为emptyWord是一个虚假的价值。条件说,“是一个虚假的价值,与虚假不同”。答案是“否/错误”。

我知道更好的办法是:emptyWord === true.

但是,当我们在这里时,您如何用文字解释片段中的条件发生了什么。我想我在某处读到你应该尽量避免“双重否定”。

标签: javascript

解决方案


你用过!== false而不是!= false。当您使用!==它时,它不是在检查“虚假”,而是在检查它是否真实false

console.log('' != false);
console.log('' !== false);


推荐阅读