Javascript简单布尔运算
Javascript简单布尔运算
我听说过布尔代数并想尝试一下。
alert (true+true===2) //true alert (true-true===0) //true
因此,代数告诉我true=1。
alert (true===1) //false :O
有人能解释这是为什么吗?
admin 更改状态以发布 2023年5月21日
===
是严格的等值运算符。请尝试使用 ==
运算符。true==1
将计算为 true
。
严格等值运算符
===
仅在它们具有相同类型时才考虑值相等。宽松等值运算符==
尝试在比较像严格等值的值之前转换不同类型的值。
情况 1:
对于true===1
,true 的数据类型为布尔型,而 1 的类型为数字。因此,表达式 true===1
将计算为 false
。
情况 2:
对于 true+true===2
和 true-true===0
,首先执行算术运算 (因为 +
运算符优先于 ===
。请参见 运算符优先级),然后将结果与另一个操作数进行比较。
在计算表达式 true+true===2
时,首先执行算术运算 true+true
,得到 2 的结果。然后将结果与另一个操作数进行比较。即 (2==2)
将计算为 true
。