我想确定一个变量是否未定义或值为 null。
在下面的例子中,我希望执行与true条件对应的子句,即控制台打印消息“EmpName is not defined”,但是“else”中的子句已经执行。其中打印“ EmpName 已定义”
var EmpName = $("div#esd-names div#name").attr('class');
if(EmpName == 'undefined'){
console.log("EmpName no está definido");
} else {
console.log("EmpName está definido");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<div id="esd-names">
<div id="name"></div>
</div>
var miVariable; //miVariable está definida pero tiene valor nulo.
console.log(miVariable)
什么是正确的方法?
该值
undefined
与字符串不同'undefined'
。在您的示例中,我会这样做:哦好
简短的回答
而不是
'undefined'
(字符串)使用null
(全局对象)。解释
'undefined'
null
它们不一样,也不属于同一类型。第一个指的是一个字符串,第二个是一个全局对象(参见null,Mozilla 开发者网络文章)。注意:请参阅amandiel的回答,其中阐明了(string) 和(reserved word) 或undefined (Mozilla Developers Network article) 之间的区别。
'undefined'
undefined
分段
在以下示例中,它已被替换
'undefined'
,null
并且要打印的消息已针对每种情况进行了调整。另一种更通用的方法是将比较 (
EmpName == 'undefined'
) 替换为变量的名称 (EmpName
)由于
javascript
没有等价于isset
as in ,php
因此您必须考虑以下事项:如果
undefined
使用变量的值:如果
null
使用变量的值:如果变量的值为空:
您还可以使用:
如果您不知道变量具有什么类型的值,您可以通过以下方式获取它:
console.log(variable)
你可以这样尝试: