2017-04-26 4 views
-3

Ich wollte nur die richtige Erklärung der ErgebnisseVerwirrung über Gleichheit

// All of these evaluate to 'true'! 
 
console.log(false == '0'); 
 
console.log(null == undefined); 
 
console.log(" \t\r\n" == 0); 
 
console.log('' == 0);

+2

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators?v=control Er beantwortet praktisch Ihre Frage – Mistalis

Antwort

0

wissen Da Sie == verwenden, ist es nicht überprüft Art, nur die value.Internally, Alle diese Werte sind eine Art falscher Werte. Daher ist es wahr.

jedoch mit === überprüfen zu und Ergebnis gibt falsch drucken statt wahr in der Konsole

0

diese Art Zwang genannt wird.

Wenn Sie double equals (==) verwenden, versucht der Parser beide Operanden zu erzwingen, um Gleichheit zu erreichen.

Die meisten Quellen schlagen vor, triple equals (===) zu verwenden, da stattdessen keine Typenzwang angewendet wird. Wenn die Werte unterschiedliche Typen sind, bedeutet das, dass sie nicht gleich sind.

zurück zu Ihrer Frage:

null, empty string und 0 sind alle Falsey Werte, die alle Mittel auf false dazu gezwungen werden. damit wird die Gleichheitsprüfung durchlaufen.