我读过很多关于真理和虚假(http://adripofjavascript.com/blog/drips/truthy-and-falsy-values-in-javascript.html)的好东西,特别是JavaScript中'=='和'==='之间的区别。最好的解释和资源主要从这个堆栈溢出问题:在表单处理的隐藏字段中存储布尔值
Which equals operator (== vs ===) should be used in JavaScript comparisons?
我的工作表单,而且需要一个布尔值存储到一个隐藏字段具有以下jQuery的语法:
$('[name="fieldName"]').val(true);
所以我插入一个布尔值,真或假,到隐藏的领域。在屏幕上的处理,我抢在一些if语句下面的代码的这个字段的值,并进行比较如下:
$('[name="fieldName"]').val() === "true"
注意如何我使用===运算符来比较字符串值“true”。
我的问题;如果只有JavaScript中的Object是类型引用,则布尔值必须是值类型。因此,我会假设,与===运算符的值比较不仅仅是内容而是比较类型,上面的表达式应该返回false?然而,在我的代码中,它返回true - 任何人都可以解释为什么这是?
此代码以前使用==进行比较,但为了避免出现虚假风险,我正在实施===,只要有可能。这可能是与jQuery转换为我的价值观?
中有什么比较的代码$ J′ –
错字 - 删除! – coderwurst