区分0和""的区别

5

我知道,我知道可能有一些帖子涵盖了这个主题。但是我用搜索没有得到符合我的需要的答案。所以我们开始吧:

我想检查一个“if”条件,在这个条件中,如果变量的值为“null”、“undefined”、“”或'',那么我想将变量的值赋为“N/A”,如果变量的值为零(0),则不应该将“N/A”赋给那个变量。

但问题在于,“”或null==0是真的,

所以请帮助我解决这个问题,

谢谢您的帮助。


如果(currentValue){ //做某事 } else if (currentValue != 0) { 如果((currentValue ==“”)||(!currentValue)){ currentValue =“N / A”; } - Mahesh Kalyankar
4个回答

5
在JavaScript中进行比较时,请使用===
// type doesn't match gives false
0 === null; // false
0 === undefined; // false
0 === ''; // false
0 === false; // false
0 === "0"; // false

// type matches
0 === 0; // true

谢谢您的回答,但我需要符合我的要求的if条件。 - Mahesh Kalyankar
2
@MaheshKalyankar 所以在 if 语句中使用 === 吗? - Pointy
3
你的要求是区分0"",这恰好是此答案中的代码所做的。 - Quentin

1
在Javascript中,null、undefined、""(空字符串)、false、0和NaN都是假值。对变量进行条件检查,如果其具有上述任何一个值,则结果为false。
在你的情况下,你可以简单地检查变量是否为假值,如果你需要排除0的情况,则可以再添加一个条件检查,即if变量!==0。
例如,在下面的代码中,假设'a'是您需要检查所有假值(但不包括0)的变量,则可以检查if(a!==0)&& !a(非假),并将其分配为N / A,否则保留'a'不变。
第1行:var a = 0; 第2行:a =(a!==0 &&!a)?“N / A”:a;
我希望上述代码对您有所帮助。

1

你是在谈论这个吗?"===" 是一个严格比较运算符,不会改变数据类型。

if (val === undefined || val === null || val === ""){
    // do something
}else{
    // do something else
}

0

这是你要的吗?只需要一个测试用例就足够了...

if ($var !== 0) $var = 'N/A';

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接