javascript - 为什么结果与我预期的不同?
问题描述
emptyWord = '';
if (emptyWord !== false) {
console.log(1);
} else {
console.log(2);
}
如果 emptyWord 为假,我希望else
运行。如果 emptyWord 为真,我希望console.log(1)
运行。
我实际上希望console.log(2)
跑步。因为emptyWord
是一个虚假的价值。条件说,“是一个虚假的价值,与虚假不同”。答案是“否/错误”。
我知道更好的办法是:emptyWord === true
.
但是,当我们在这里时,您如何用文字解释片段中的条件发生了什么。我想我在某处读到你应该尽量避免“双重否定”。
解决方案
你用过!== false
而不是!= false
。当您使用!==
它时,它不是在检查“虚假”,而是在检查它是否真实false
。
console.log('' != false);
console.log('' !== false);
推荐阅读
- java - Apache Beam TestStream finalPane 未按预期触发
- regex - 排除 lftp 镜像命令中所有以点为中心的内容
- jpeg - 使用英特尔 IPP 解压缩无损 JPEG
- python - 不断收到此错误“AF_INET 地址必须是元组,而不是套接字”。不知道如何解决它是什么意思
- jenkins - jenkins 中是否有一个插件来限制字符串参数的字符输入?
- r - 关于 R for 循环和 if 语句的一个实际问题
- python - 如何修复`警告:错误的管道:没有元素“疯狂”`
- architecture - 寻找下载大文件的架构
- c++ - 如何在虚拟机上使用 Visual Studio 设置内核调试器
- c++ - 在 C++ 中绘制 Windows 10 壁纸