javascript : checking boolean values

标签 javascript

我在表单中将一个 bool 值设置为隐藏变量,并且我有以下 javascript。

         $().ready(function() {

             var flag =  $('#popUpFlag').val();

             alert("flag = "+flag);

             if(flag){
                alert("flag is true");
             }else{
                alert("flag is false");
             }
        })

这些是警报的输出。

         flag =
         flag is false


         flag = false
         flag is false


         flag = true
         flag is false

我关心的显然是第三个输出。当标志为 true 时,为什么打印“flag is false”而不是“flag is true”。我在IE8和FF 4中测试过

欢迎提出建议。

最佳答案

不,您在隐藏字段中没有 bool 值。该字段中的值始终是一个字符串。

当您将字符串值当作 bool 值使用时,您会得到意想不到的结果。如果值为 false0""null,则条件为 false,但字符串 "false" 两者都不是,因此它被评估为 true

如果你想要一个 bool 值,你必须解析字符串。一种简单的方法是简单地检查字符串是否具有特定值:

var flag =  $('#popUpFlag').val() === 'true';

关于javascript : checking boolean values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5800688/

相关文章:

javascript - 在 Javascript 中使用对象数组作为参数

javascript - 在等待数据时触发 JavaScript-loader

javascript - 如何使用 JavaScript 在 HTML 中放置 SVG 图像文件

javascript - 检测 JavaScript 对象是否为 FormData 实例

javascript - 如何在我的数组中获取该用户的真实索引?

javascript - 如何获取触发弹出窗口的 JavaScript 代码?

javascript - 将实际日期保存在变量中(只有日期,没有时间)

javascript - 使用 typescript 时我得到 "Uncaught ReferenceError: angular is not defined"

javascript - Babel 翻译的 React 仍然需要 JSXTransformer

javascript - 如何使用 slider 更改 HTML5 音频音量或轨道位置?