在 JavaScript 中检查一个值是否为 Truthy
How to Check if a Value is Truthy in JavaScript
要检查值是否真实,请将值传递给if
语句,例如
if (myValue)
. 如果该值是真实的,它会被强制转换true
为if
块运行。
索引.js
const myVar = 'test'; if (myVar) { console.log('✅ myVar is truthy'); } else { console.log('⛔️ myVar is falsy'); }
该if
语句检查存储在变量中的值是否为
真。Truthy 是所有不虚假的值。
JavaScript 中的假值是:false
, 0
, 空字符串, null
,
undefined
, NaN
。
if
仅当变量存储上述虚假值以外的任何值时,该块才会运行。
在块运行之前,语句中的真实值if
会被强制转换为真实值。以下是条件中使用的真值的一些示例。true
if
if
索引.js
if ([]) { console.log('✅ This runs'); } if ({}) { console.log('✅ This runs'); } if (true) { console.log('✅ This runs'); } if ('test') { console.log('✅ This runs'); }
请注意,空数组和空对象被认为是真实的,而空字符串被认为是虚假的。
索引.js
if ('') { console.log("⛔️ this doesn't run"); }
如果您需要检查数组或对象是否包含元素或键值对,请改为执行以下操作:
索引.js
if (['a'].length > 0) { // 👉️ array is not empty } if (Object.keys({a: 'b'}).length > 0) { // 👉️ object is not empty }
我们检查数组是否包含至少 1 个元素以及对象是否包含至少 1 个键值对。
您也可以隐式地进行检查,例如:
索引.js
if (['a'].length) { // 👉️ if this runs, the array is not empty }
我们隐式检查数组的长度。如果数组为空,其
length
属性将返回0
,这是一个虚假值,我们的if
块将不会运行。
如果数组至少包含 1 个元素,则该length
属性将返回一个正整数,即真值。该值被强制为true
并且if
块运行。