Javascript 为什么是15>;10>;5错?
下面的javascript函数输出为Javascript 为什么是15>;10>;5错?,javascript,Javascript,下面的javascript函数输出为false,为什么会导致false console.log(15 > 10 > 5); 因为比较运算符需要两个操作数。首先,代码计算15>10,返回true,然后计算true>5,显然返回false从左到右取两个操作数并关联。这意味着表达式15>10>5的计算结果为(15>10)>5 15>10的计算结果显然为true true>5对它的评估方式并不明显 幸运的是,说明了当值具有不同类型时如何转换这些值: 如果其中一个操作数是布尔操作数,则布尔操
false
,为什么会导致false
console.log(15 > 10 > 5);
因为比较运算符需要两个操作数。首先,代码计算
15>10
,返回true
,然后计算true>5
,显然返回false
从左到右取两个操作数并关联。这意味着表达式15>10>5
的计算结果为(15>10)>5
15>10
的计算结果显然为true
true>5
对它的评估方式并不明显
幸运的是,说明了当值具有不同类型时如何转换这些值:
如果其中一个操作数是布尔操作数,则布尔操作数在为真时转换为1
,在为假时转换为+0
这意味着
true>5
的评估方法与1>5
的评估方法相同,直到现在结果才清楚:它是false
,因为1>5===false
。你的意思可能是(15<10)&(10>5),我相信说15>10>5你实际上做的是(15>10)>5,这会让你得到true>5更好的复制品的可能复制品:为什么(0<5<3)返回true的可能复制品?为什么true>5
为false一点也不明显。true等于1,这里你更确切地说,true>5
没有任何意义。但是,true
可以转换为一个数字,结果是1
。因此true>5
将被转换为1>5
,即false
。由于上述原因,15>10>-5
将返回true
。