区分 0 和 ""
Posted
技术标签:
【中文标题】区分 0 和 ""【英文标题】:differentiate between 0 & "" 【发布时间】:2015-07-30 15:20:37 【问题描述】:我知道,我知道一定有一些话题涉及这个话题。但我使用搜索并没有得到适合我需要的答案。所以我们开始:
我想检查一个“if”条件,如果变量具有“null”或“undefined”或“”或“”之类的值,那么我想将变量值分配为“N/A”和 if 值为零 (0) 它不应将“N/A”分配给该变量。
但这里的问题是 "" 或 null == 0 是真的,
所以请帮我解决这个问题, 提前致谢
【问题讨论】:
if (currentValue) //做一些事情 else if (currentValue != 0) if ((currentValue == "") || (!currentValue)) currentValue = "N/一种”; 【参考方案1】:在 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
【讨论】:
感谢您的回答,但如果条件符合我的要求,我需要 @MaheshKalyankar 所以在if
语句中使用===
?
@MaheshKalyankar — 您是否不需要区分 0
和 ""
,这正是这个答案中的代码所做的。【参考方案2】:
这就是你说的吗? "===" 是一个严格的比较运算符,不会改变数据类型。
if (val === undefined || val === null || val === "")
// do something
else
// do something else
【讨论】:
【参考方案3】:在 Javascript 中,null、undefined、""(空字符串)、false、0、NaN 是假值。条件检查具有任何这些值的变量会导致错误。
在您的情况下,您可以简单地检查变量是否为假,如果您需要从该条件中排除 0,您可以为 if variable !== 0 添加一个条件检查。
例如,在下面的代码中,'a' 是您需要检查除 0 之外的所有虚假值的变量,然后您可以检查 if (a!==0) && !a (not of falsy) 并分配不适用,否则保留“a”。
第 1 行:var a = 0; 第 2 行:a = (a!==0 && !a)? “不适用”:一个;
希望上面的代码可以帮到你。
【讨论】:
【参考方案4】:这就是你所追求的吗?一个测试用例就足够了……
if ($var !== 0) $var = 'N/A';
【讨论】:
以上是关于区分 0 和 ""的主要内容,如果未能解决你的问题,请参考以下文章