【问题标题】:differentiate between 0 & ""区分 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/一种”; }

标签: javascript html dojo


【解决方案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';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-09
        • 1970-01-01
        • 2021-09-16
        • 2016-10-07
        • 1970-01-01
        • 2017-02-28
        • 1970-01-01
        相关资源
        最近更新 更多