为什么 JavaScript JSON 的计算结果为 false
Why does JavaScript JSON evaluate to false?
为什么会这样:
var bla = {
"1":"1",
"2":"2"
}
console.log(bla === true)
是假的 ?
http://jsfiddle.net/nottinhill/jdxvnea1/
那是因为bla
是一个对象而不是一个boolean
。
console.log(typeof bla === 'object') //logs true
查看此问答以获取更多帮助
通过使用
===
,您可以在不进行类型转换的情况下进行比较,因此不同类型的变量永远不会相等。
> bla = {"1": "1", "2": "2"}
> bla == true
=> false
> bla === true
=> false
> bla === false
=> false
> Boolean(bla) === true // Do it like this
=> true
你的 bla 是一个对象,false 是布尔值。
- 严格平等===
如果操作数严格相等(见上文)且没有类型转换,则标识运算符返回 true。
- 平等 ==
不同,则相等运算符将转换操作数,然后应用严格的比较。如果操作数是数字或布尔值,则操作数将尽可能转换为数字;否则,如果任一操作数是字符串,则字符串操作数将尽可能转换为数字。如果两个操作数都是对象,那么当操作数引用内存中的同一对象时,JavaScript 会比较内部引用,这些内部引用是相等的。
来源:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators
不能将对象等同于布尔值。 您可以使用对象索引或像这样检查对象是否存在
console.log(bla[1] == true)
or
if(bla) { console.log(true); }
相关文章:
- 如果 a 为 false,则 if(a) === if(false)
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 为什么我的JS"如果“;语句的求值结果总是为false
- 如果ng-if的计算结果为false,AngularJS会使我的模型数据无效
- 为什么 {} == false 的计算结果为 false,而 [] == false 的计算结果为 true
- 为什么Number.MIN_VALUE < -1219312(或任何小值)的计算结果为 false
- Javascript 布尔值:false && true 结果为 true
- 为什么 JavaScript JSON 的计算结果为 false
- window.jQuery==true的计算结果为false,尽管window.jQuery=false计算结果为tru
- I'm在if语句中使用小于比较器;然而,即使它不应该;t、 它的评估结果为false
- 为什么以下比较结果为false
- 如果([]== false)为真,为什么([]|| true)的结果是[]?
- JavaScript条件的计算结果为false
- 变量的计算结果总是false
- 是否“总是返回无序的结果”意味着“返回false”
- KnockoutJs 1.3测试版._destroy:false在UI上的结果与_destroy:true相同
- 为什么两个具有深度相等元素的数组的深度相等结果为false ?
- AngularJS:由于服务的异步性质,函数的计算结果总是为false
- XMLHttpRequest.打开第三个参数false不给php mysql在iPad上的查询结果
- Javascript控制台日志在if语句计算结果为false后自行清除