Heim >Web-Frontend >js-Tutorial >Truthy und Falsy -Werte: Wenn in JavaScript nicht alles gleich ist
Die Gleichstellungsvergleiche von
JavaScript können aufgrund seiner lockeren Tippen schwierig sein. In diesem Artikel werden die Nuancen von Double (==) und Triple (===) gleicher Operatoren und das Konzept der Wahrheits- und Falsy -Werte untersucht.
Verständnis dieser Konzepte führt zu sauberer, vorhersehbarerer Code.
Key Takeaways:
false
, 0
, -0
, 0n
, ""
, null
, undefined
und NaN
. Alle anderen Werte sind wahrheitlich, einschließlich '0'
, 'false'
, []
, {}
und Funktionen. false == 0 == ''
wahr, aber [] == true
ist falsch und [] == false
ist wahr! Strenge Gleichheit vermeidet diese Mehrdeutigkeiten. ===
) und konvertieren bei Bedarf explizit in booleale Werte (Boolean()
oder !!
). Dies gewährleistet vorhersehbares Verhalten. JavaScripts Typierungssystem:
JavaScript -Variablen werden lose tippt:
<code class="language-javascript">let x; x = 1; // x is a number x = '1'; // x is a string x = [1]; // x is an array</code>
lose Gleichheit (==) konvertiert Werte vor Vergleich in Zeichenfolgen:
<code class="language-javascript">// all true 1 == '1'; 1 == [1]; '1' == [1];</code>
strenge Gleichheit (====) berücksichtigt Typ:
<code class="language-javascript">// all false 1 === '1'; 1 === [1]; '1' === [1];</code>Die primitiven Typen von
JavaScript sind: undefined
, null
, boolean
, number
, bigint
, string
und symbol
. Alles andere ist ein Objekt (einschließlich Arrays).
Wahrheit und falsy -Werte:
Jeder Wert hat ein boolesches Äquivalent:
false
, 0
, -0
, 0n
, ""
, null
, undefined
, NaN
Beispiel:
<code class="language-javascript">if (value) { // value is truthy } else { // value is falsy }</code>
document.all
(veraltet) ist ebenfalls falsy.
Lose Gleichheit (==) Vergleiche:
lose Gleichheit führt zu unerwarteten Ergebnissen mit Wahrheits-/Falsy -Werten:
strenge Gleichheit (===) Vergleiche:
strenge Gleichheit liefert klarere Ergebnisse:
Beachten Sie, dass NaN === NaN
immer false
.
Empfehlungen:
!x
anstelle von x == false
. ===
): liefert vorhersehbarere Ergebnisse. Boolean(x)
oder !!x
für explizite boolesche Konvertierung. Schlussfolgerung:
Verständnis der Wahrheit/Falsy -Werte und der Verwendung strenger Gleichheit verbessert die Codezuverlässigkeit. Vermeiden Sie die Fallstricke loser Vergleiche, um Debugging -Kopfschmerzen zu verhindern.
FAQs (für die Kürze abkürzte):
Boolean()
Funktion. ==
vs ===
: lose vs. strenge Gleichheit; ===
vermeidet Typ -Zwang. &&
) und oder (||
). 0
, ""
, null
, undefined
, NaN
, -0
. Boolean()
. 0
vs '0'
, leere Arrays/Objekte sind wahr. Das obige ist der detaillierte Inhalt vonTruthy und Falsy -Werte: Wenn in JavaScript nicht alles gleich ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!