区分 0 和 ""

differentiate between 0 & ""

我知道,我知道一定有一些话题涉及这个话题。但是我使用搜索并没有得到符合我需要的答案。所以我们开始吧:

我想检查一个 "if" 条件,因为如果变量具有 "null" 或 "undefined" 或 "" 或 '' 之类的值,那么我想将变量值分配为"N/A" & 如果值为零 (0),则不应将 "N/A" 分配给该变量。

但问题就出在这里,"" or null == 0 为真,

所以请帮我解决这个问题, 提前致谢

使用 ===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 (val === undefined || val === null || val === ""){
    // do something
}else{
    // do something else
}

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

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

在Javascript中,null、undefined、""(空字符串)、false、0、NaN 都是假值。对具有任何这些值的变量进行条件检查会导致 false。

在你的情况下,你可以简单地检查变量是否为假,如果你需要从这个条件中排除 0,你可以再添加一个条件检查是否变量!== 0。

例如在下面的代码中说 'a' 是您需要检查除 0 以外的所有虚假值的变量,然后您可以检查是否 (a!==0) && !a(不是falsy) 并分配给 N/A 否则保持 'a' 不变。

第 1 行:var a = 0; 第 2 行:a = (a!==0 && !a)? "N/A":一个;

希望以上代码对您有所帮助。