判断变量为空的方法

前言

平常用到bat python比较多,这两种语言非常好判断。但是js就不方便了,因为js变量的不同类型判断的方式是不一样的。

JavaScript本身没有判断一个变量值是不是空值的函数,因为变量有可能是string,object,number,boolean等类型,类型不同,判断方法也不同。

下面将演示三种语言中如何判断:

js

1
2
3
4
5
6
7
str1=""
str2=""
if (str1+str2=="") {
WSH.Echo('变量为空')
} else {
WSH.Echo('变量不是空的')
}

这里最关键的点在于提前指定好两个变量的类型为字符串形式,这样就不会不存在了,也可以规避掉js对不同变量类型的结果变更。我们只需要判断值是否是没有任何字符串的空字符就好了。

bat

1
2
3
4
5
6
7
@echo off
if "%str1%%str2%"=="" (
echo 变量为空
) else (
echo 变量不是空的
)
timeout 2 1>nul

相比bat,就比js简化多了,不会对变量的类型产生不同的结果。可以说bat压根不存在变量类型,一切皆为字符型。甚至你的变量没有定义,只要没检测到字符,就可以判断。

python

1
2
3
4
5
6
str1=""
str2=""
if len(str1+str2) == 0:
print('变量为空')
else:
print('变量不是空的')

这里用到的len,和bat中的errorlevel错误等级类似。如果一个变量内容不是空,则返回1,如果两个变量都不是空,那就返回2。都是空,则返回0。当然这是针对字符串类型的变量,如果你的变量不是字符串型,那么你需要进行转换。
例如str1不是字符串,len中需要对其进行转换:

1
if len(str(str1)+str2) == 0:

参考文献

javascript判断变量值是否为空?