3

如果我将变量设置为 0,我会得到奇怪的行为,即与“”(空)的比较为真。如何检查变量是否真的为空?

tmp = 0;

if ( tmp != "")
{
    //do something - This is where the code goes.
}
else
{
   //isEmpty - I would expect to be here
}
4

4 回答 4

4

使用严格的比较运算符 ===!==

使用==and !=(称为抽象比较运算符),

如果两个操作数的类型不同,JavaScript 会尝试将操作数转换为适当的类型以进行比较。


如果为空,则要检查变量是否尚未定义,请使用:

if (typeof tmp !== "undefined") {
    // it exists!
}
于 2013-04-17T09:33:41.963 回答
0

你是什​​么意思empty variable?如果你的意思是一个空字符串,那么你应该使用!==它来检查它。

if (tmp !== "")
于 2013-04-17T09:34:29.130 回答
0

JavaScript 隐式地​​将值转换为其他类型。要检查类型,请使用!==运算符:

if ( tmp !== "")
于 2013-04-17T09:34:36.960 回答
0

在 JavaScript 中,除了、 、0NaN之外的所有内容都被认为是错误的。"" 被认为是.undefinedfalsenulltrue

if (tmp) {

}

如果变量包含除、、和之外的任何值,if则将执行上述操作。0NaNundefinedfalsenull

如果tmp是,string那么您可以使用以下代码:

if (tmp !== "") {

}

===!==运算符在不进行类型转换的情况下进行比较。

于 2013-04-17T09:36:45.300 回答