在 JavaScript 中检查变量是否为 False
How to Check if a Variable is False in JavaScript
使用严格相等 (===) 运算符来检查变量是否等于
false
,例如myVar === false
。
true
如果变量等于,则严格相等 (===) 运算符将返回false
,否则将返回false
。
索引.js
const a = false; // ✅ Check if a variable is false if (a === false) { // 👇️ this runs console.log('The variable is equal to false'); } else { console.log('The variable is not equal to false'); } // ---------------------------------------- // ✅ Check if a variable is falsy if (!a) { // 👇️ this runs console.log('The variable is falsy'); } else { console.log('The variable is truthy'); } // ---------------------------------------- // ✅ Check if a variable is false using typeof (without error) if (typeof abc === 'boolean' && a === false) { console.log('The variable is false'); } else { console.log('The variable is NOT false'); }
我们使用
严格相等 (===) 运算符
来检查变量是否存储false
值。
运算符返回一个布尔值:
true
如果值相等false
如果值不相等
严格相等 (===) 运算符将不同类型的两个值视为不同,这与松散相等 (==) 运算符相反。
这意味着如果我们false
与任何其他类型进行比较,严格相等运算符 (===) 将返回false
。
索引.js
console.log(false === false); // 👉️ true console.log(false === 'false'); // 👉️ false console.log(false === 0); // 👉️ false
一个非常常见的错误是检查一个值是否为假,而不是检查它是否等于
false
。这是一个例子。
索引.js
const a = false; if (!a) { console.log(`⛔️️ a is ONE OF false, 0, empty string, null, undefined, NaN`); } else { console.log(`🚨 a is NOT false, 0, empty string, null, undefined, NaN`); }
我们使用
逻辑 NOT (!)
运算符来翻转变量的值。
我们的if
语句检查变量是否为假。
JavaScript 中的假值是:false
, 0
, ""
(空字符串),null
,
undefined
, NaN
(不是数字)。
这意味着对于
if
要运行的块,变量可以是上述任何6
虚假值,但不一定是. false
以下是这可能导致问题的示例。
索引.js
const a = 0; if (!a) { console.log('✅ this runs'); } else { console.log("⛔️ this doesn't run"); }
该if
块运行是因为变量设置为0
虚假值。
这会让阅读代码的人感到困惑,因为
if
如果将变量设置为任何6
虚假值,该块就会运行。相反,最好更明确。
索引.js
const a = 0; if (a !== 0) { console.log("⛔️ this doesn't run"); } else { console.log('✅ this runs'); }
在比较值时明确说明可以节省您自己和开发人员阅读您的代码的时间。
检查一个变量是否等于false
使用typeof
使用typeof
运算符检查变量是否等于false
,例如
if (typeof abc === 'boolean' && a === false) {}
。
如果变量尚未声明,运算符将检查变量是否等于而不会抛出错误typeof
。false
索引.js
if (typeof abc === 'boolean' && abc === false) { console.log('The variable is false'); } else { // 👇️ this runs console.log('The variable is NOT false'); }
请注意,该abc
变量尚未声明,但运行代码示例时不会出现错误。
该typeof
运算符返回一个指示值类型的字符串。
即使您正在检查的变量尚未声明,运算符也不会导致错误。
我们使用逻辑与 (&&) 运算符来链接多个条件。
if
仅当满足两个条件时,该块才会运行。