Ich habe 3 Textfelder, in denen ich versuche, eine Validierung durchzuführen, bei der alle 3 Werte übereinstimmen. Ich habe eine einfache Funktion:

    function DoesSubsriberSignatureMatch() {
    return tbNameOfSubscriber.GetText() == tbSubscriberSig1.GetText() == tbSubscriberReEnter.GetText();
}

Ich bin mit dem Debugger durchgegangen, und es scheint, dass zumindest in Javascript in Chrome "a" == "a" true zurückgibt, aber "a" == "a" == "a" false zurückgibt.

Warum?

1
dferraro 19 Nov. 2013 im 23:45

3 Antworten

Beste Antwort

Vielleicht aus Python? Die meisten Sprachen haben keine Vergleichsverkettung. Der Versuch führt zu Unsinnsergebnissen.

3
user2357112 supports Monica 19 Nov. 2013 im 19:46

Weil a == a true und true != a ergibt.

(Es sei denn, a enthält den Wert true).

4
RRK 26 Okt. 2018 im 06:26

Nehmen

"a"=="a"=="a"

Und zerlege es. So zuerst

"a" == "a"

Gleich was? true. Richtig. Ersetzen Sie nun den ersten Teil durch true

true == "a"

Was natürlich falsch ist

4
Adam Rackis 19 Nov. 2013 im 19:47