359 Stimmen

Warum liefert (0 < 5 < 3) true?

Ich spielte herum in jsfiddle.net und ich bin neugierig, warum dies wahr zurückgibt?

if(0 < 5 < 3) {
    alert("True");
}

Das gilt auch hier:

if(0 < 5 < 2) {
    alert("True");
}

Dies ist jedoch nicht der Fall:

if(0 < 5 < 1) {
    alert("True");
}

Ist diese Eigenart überhaupt nützlich?

3voto

truease.com Punkte 1193
0 < 5 < 3 
==> ( ( 0 < 5 ) < 3 )
==> true < 3
==> 1 < 3
==> true

1voto

Ein boolescher Operand, der über einen mathematischen Operator operiert wird, gibt eine Zahl zurück. Um dies zu überprüfen, machen wir

true + 1  which gives you 2.

Also 0 < 5 wird der zurückgegebene boolesche Wert (true) mit dem mathematischen Operator (<) eine Zahl ergeben. Es läuft also auf 1<3 hinaus, was Folgendes ergibt true

1voto

ndotie Punkte 927

Weil 0 kleiner als 5 ist, dann gibt das wahr zurück, und standardmäßig ist wahr alles einschließlich und kann zu 1 ausgewertet werden, das noch kleiner als 3 ist, das wieder wahr zurückgibt

-1voto

SwiftNinjaPro Punkte 651

Versuchen Sie, Ihre Ergebnisse als Number() zu formulieren

if(Number(0) < Number(5) < Number(3)) {
    alert("True");
}

oder versuchen Sie dies:

if(Number(0) < Number(5) && Number(5) < Number(3)) {
    alert("True");
}

Ich habe das gegoogelt, weil ich immer wieder (3 >= 20) //returning true und ich vermute, dass Javascript versucht hat, die 3 als booleschen Wert, weil ich diesen Wert aus der elm.getAttribute(); Funktion, die console.log(); wurde in Form einer Zeichenkette gedruckt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X