Javascript简单布尔运算

22 浏览
0 Comments

Javascript简单布尔运算

我听说过布尔代数并想尝试一下。

alert (true+true===2)  //true
alert (true-true===0)  //true

因此,代数告诉我true=1。

alert (true===1)  //false :O

有人能解释这是为什么吗?

admin 更改状态以发布 2023年5月21日
0
0 Comments

因为比较的是数据类型和值(这就是操作符“===”所做的),所以TRUE和1并不完全相同。如果你将其改为TRUE == 1,这将可以很好地工作。

0
0 Comments

=== 是严格的等值运算符。请尝试使用 == 运算符。true==1 将计算为 true

严格等值运算符 === 仅在它们具有相同类型时才考虑值相等。宽松等值运算符 == 尝试在比较像严格等值的值之前转换不同类型的值。

情况 1:

对于true===1,true 的数据类型为布尔型,而 1 的类型为数字。因此,表达式 true===1 将计算为 false

情况 2:

对于 true+true===2true-true===0,首先执行算术运算 (因为 + 运算符优先于 ===。请参见 运算符优先级),然后将结果与另一个操作数进行比较。

在计算表达式 true+true===2 时,首先执行算术运算 true+true,得到 2 的结果。然后将结果与另一个操作数进行比较。即 (2==2) 将计算为 true

0