如何检查 JavaScript 中是否为空/未定义/空字符串?
JavaScript 中是否存在
string.Empty
,或者它只是检查
""
的情况?
空字符串、未定义、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
}
用于检查变量是否为 falseforr"> falsepyy 或是否长度属性等于零(对于字符串,意味着它是空的),我使用:
830346641
(请注意,字符串不是唯一具有a <的变量代码>长度 属性,数组也具有它们。)
替代性,您可以使用(不是)新的可选链接和箭头功能来简化:< /p>
846472415
它将检查长度,返回
undefined
在无效的情况下,而不会丢失错误。如果是空值,则零是虚假的,结果仍然有效。
用于检查变量是否为false,或者字符串仅包含whitespace或空,我使用:
083644773
如果需要,您可以
monkey-patch
字符串
原型:
299688009
请注意,猴子斑点内置类型是有争议的,因为它可能因任何原因而破坏代码,这取决于内置类型的现有结构。
所有前面的答案都很好,但这个会更好。使用双重 NOT 运算符 (
!!
):
if (!!str) {
// Some code here
}
或者使用类型转换:
if (Boolean(str)) {
// Code here
}
两者执行相同的功能。将变量转换为布尔值,其中
str
是一个变量。
-
对于
null
、undefined
、0
、000
、""
、false
,它返回false
。 -
对于除空字符串之外的所有字符串值(包括
"0"
和" "
等字符串),它返回true