如何在JavaScript中检查变量不为null、未定义、非空字符串且非空白字符?
如何在JavaScript中检查变量不为null、未定义、非空字符串且非空白字符?
嘿,我来帮你搞定这个需求~你想要验证一个字符串变量同时满足以下几个条件对吧:
- 不是 null
- 不是 undefined
- 不是空字符串
- 不是纯空白字符
你自己写的这段代码其实已经很靠谱了:
if (testData && testData.trim() !== '') { // 满足所有条件时执行的逻辑 }
我给你拆解下这个判断的逻辑:
- 前面的
testData &&会先帮你排除null和undefined的情况——因为在JavaScript里,null和undefined都是“假值”,遇到&&会直接短路,不会执行后面的trim()操作,这样就避免了出现null.trim()这类报错。 - 后面的
testData.trim() !== ''则是把字符串两端的空白字符(空格、换行、制表符这些)都去掉,再判断剩下的内容是不是空字符串。这样一来,不管是纯空白的字符串(比如" ")还是空字符串("")都会被排除掉,正好满足你的要求。
如果你的项目环境支持ES2020及以上的语法,还可以用可选链操作符写得更简洁一点:
if (testData?.trim()) { // 满足条件时执行的逻辑 }
这里的?.会在testData是null或undefined的时候直接返回undefined,Boolean(undefined)是false;如果testData是有效字符串,trim()后非空的话会被转换成true,效果和之前的写法完全一致。
备注:内容来源于stack exchange,提问作者mattsmith5
相关产品推荐
相关产品推荐

