当前位置:  开发笔记 > 编程语言 > 正文

链接数学比较运算符时javascript的奇怪行为

如何解决《链接数学比较运算符时javascript的奇怪行为》经验,为你挑选了1个好方法。

检查chrome控制台运行以下语句时返回奇怪的结果.

0.5 <0.6 <0.7 =>返回false

1.5 <1.6 <1.7 =>返回true

谁能解释这种行为?

alert("0.5 < 0.6 < 0.7  = " + (0.5 < 0.6 < 0.7));
alert("1.5 < 1.6 < 1.7  = " + (1.5 < 1.6 < 1.7));



1> thefourtheye..:

表达方式

0.5 < 0.6 < 0.7

被评估,像这样

(0.5 < 0.6) < 0.7

由于第一部分是true,它将是有效的

true < 0.7

两侧将试图将转换为数字,并且自true1当转换为一个数,表达变

1 < 0.7

这是不正确的.这false就是返回的原因.


同样,在第二种情况下,

1.5 < 1.6

是的true,所以它变得1和表达成为

1 < 1.7

是的true.


您可以将布尔值的行为检查为数字,如下所示

console.log(+true);
// 1
console.log(+false);
// 0
console.log(Number(true));
// 1
console.log(Number(false));
// 0

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有