Javascript 带有布尔值的表达式求值
在Java或其他类似语言中,我无法做到:Javascript 带有布尔值的表达式求值,javascript,Javascript,在Java或其他类似语言中,我无法做到: a < b > c 现在,为什么结果是真的呢?因为Javascript愿意立即进行类型转换。布尔值true强制为数值1 请注意,1==true是true,但是1===true是falseJavaScript首先将布尔值true转换为一个数字进行比较。在这种情况下,true被强制转换为1 不过,许多对象不会被强制转换为数字。例如,{}为NaNTrue将转换为1。3大于1…+1。另外,ac将被计算为(ac,并且由于ac正在测试生成的强制转换整数
a < b > c
现在,为什么结果是真的呢?因为Javascript愿意立即进行类型转换。布尔值
true
强制为数值1
请注意,
1==true
是true
,但是1===true
是false
JavaScript首先将布尔值true
转换为一个数字进行比较。在这种情况下,true
被强制转换为1
不过,许多对象不会被强制转换为数字。例如,
{}
为NaN
True将转换为1。3大于1…+1。另外,ac
将被计算为(ac
,并且由于a
计算为布尔值,>c
正在测试生成的强制转换整数(1或0)是否确实大于c。对我来说,所有这些解释构成了在遇到这样的代码时删除它的理由:-)
var t = 3;
var z = true;
t > z // will be true