【问题标题】:Javascript is not detectinng boolean falseJavascript 未检测到布尔值 false
【发布时间】:2016-07-19 06:50:22
【问题描述】:

我的 javascript 文件中有一个变量。让我们称该变量为“isValid”。它的值为假。 我必须在 if 语句中检查它的值,如下所示:

if(!isValid){
//Do something
}

但它根本没有进入 if 语句。我已经通过发出警报声明检查了这一点。然后我像这样使用 typeof() :

if(typeof(isValid) === false){
//Do something
}

但这也行不通。对此有何建议?

【问题讨论】:

  • typeof 返回一个字符串...没有看到实际代码,谁知道您实际上将isValid 设置为... false != "false" ... 一个有趣的事情是console.log(typeof isValid); 之前if 测试 - 你应该得到 boolean
  • typeof isValid 将返回一个字符串。检查您的情况是否为“布尔值”。 0, '', null 也是假值。
  • 澄清一下,if isValid 确实是 false ... typeof isValid will == STRING "boolean"
  • @Krishnakumar_Muraleedharan - 可能是布尔值,因为根据第一个示例它是“真实的”,它可能是任何不是“虚假”的东西

标签: javascript html javascript-objects


【解决方案1】:

检查这个: 如果变量包含 false 只是给出条件 值 == '假'

var value = "false"; //string

if (value=='false')
{
    console.log("this is false")
}
else
{
   .... some code
}

value = false; //now your variable is a boolean
if(value === false)
{
    return "something";
}
else
{
    ..... some code
}

// 打印:这是错误的

【讨论】:

  • no .. false'false' 不一样 ...我认为您正在增加混乱
  • 假 == '假' => 假
  • 是的,你是对的。实际上,我是从我的 java bean 类中获取变量的值。当我使用 typeof 方法检查 isValid 变量的类型时,它显示了字符串。所以我把 false 放在引号里,它起作用了。谢谢
猜你喜欢
  • 1970-01-01
  • 2018-08-17
  • 2017-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-26
  • 1970-01-01
相关资源
最近更新 更多