开发者问题收集

如何检查 JavaScript 中是否为空/未定义/空字符串?

2008-09-30
5584403

JavaScript 中是否存在 string.Empty ,或者它只是检查 "" 的情况?

3个回答

空字符串、未定义、null、...

要检查 truthy 值

if (strValue) {
    // strValue was non-empty string, true, 42, Infinity, [], ...
}

要检查 falsy 值

if (!strValue) {
    // strValue was empty string, false, 0, null, undefined, ...
}

空字符串(仅限!)

要检查是否为空字符串,请使用 "" 进行比较,以确定是否严格相等rel="noreferrer"> === 运算符

if (strValue === "") {
    // strValue was empty string
}

要严格检查是否为空字符串,请使用 !== 运算符

if (strValue !== "") {
    // strValue was not an empty string
}
bdukes
2008-09-30

用于检查变量是否为 falseforr"> falsepyy 或是否长度属性等于零(对于字符串,意味着它是空的),我使用:

830346641

(请注意,字符串不是唯一具有a <的变量代码>长度 属性,数组也具有它们。)

替代性,您可以使用(不是)新的可选链接和箭头功能来简化:< /p> 846472415

它将检查长度,返回 undefined 在无效的情况下,而不会丢失错误。如果是空值,则零是虚假的,结果仍然有效。

用于检查变量是否为false,或者字符串仅包含whitespace或空,我使用:

083644773

如果需要,您可以 monkey-patch 字符串 原型:

299688009

请注意,猴子斑点内置类型是有争议的,因为它可能因任何原因而破坏代码,这取决于内置类型的现有结构。

Jano González
2010-07-16

所有前面的答案都很好,但这个会更好。使用双重 NOT 运算符 ( !! ):

if (!!str) {
    // Some code here
}

或者使用类型转换:

if (Boolean(str)) {
    // Code here
}

两者执行相同的功能。将变量转换为布尔值,其中 str 是一个变量。

  • 对于 nullundefined0000""false ,它返回 false

  • 对于除空字符串之外的所有字符串值(包括 "0"" " 等字符串),它返回 true

karthick.sk
2011-03-30