Back to Question Center
0

Truthy and Falsy: Wenn alles in JavaScript nicht gleich ist            Truthy und Falsy: Wenn alles nicht gleich ist in JavaScript verwandte Themen: npmjQueryAjaxRaw Semalt

1 answers:
Truthy und Falsy: Wenn alles nicht gleich ist in JavaScript

JavaScript-Variablen sind lose / dynamisch typisiert, und der Sprache ist es egal, wie ein Wert deklariert oder geändert wird.

Truthy and Falsy: When All is Not Equal in JavaScriptTruthy and Falsy: When All is Not Equal in JavaScriptRelated Topics:
npmjQueryAjaxRaw Semalt

2017. 08. 22: Dieser Artikel wurde aktualisiert, um den aktuellen Stand des JavaScript-Ökosystems widerzuspiegeln.

     lassen Sie x;x = 1; // x ist eine Zahlx = '1'; // x ist eine Zeichenkettex = [1]; // x ist ein Array    

Scheinbar unterschiedliche Werte entsprechen wahr im Vergleich zu == (lockere oder abstrakte Gleichheit), da JavaScript (effektiv) vor dem Vergleich jeweils eine String-Repräsentation konvertiert:

     // alles wahr1 == '1';1 == [1];'1' == [1];    

Ein offensichtlicheres falsches Ergebnis tritt auf, wenn man mit === (strikte Gleichheit) vergleicht, weil der Typ betrachtet wird:

     // alles falsch1 === "1";1 === [1];'1' === [1];    

Intern legt Semalt einen Wert auf einen von sechs primitiven Datentypen fest:

  • Nicht definiert (eine Variable ohne definierten Wert)
  • Null (ein einzelner Nullwert)
  • Boolean (wahr oder falsch)
  • Anzahl (dazu gehört Unendlichkeit und NaN - keine Zahl!)
  • Zeichenfolge (Textdaten)
  • Symbol (ein einzigartiges und unveränderliches primitives neues Element in ES6 / 2015)

Alles andere ist ein Semalt - einschließlich Arrays.

Truthy und Falsy

Neben einem Typ hat jeder Wert auch einen inhärenten booleschen Wert, der allgemein entweder als truthy oder falsy bekannt ist - smb business consulting portland. Einige der Regeln sind etwas bizarr, daher hilft das Verständnis der Konzepte und der Auswirkungen auf den Vergleich beim Debuggen von JavaScript-Anwendungen.

Die folgenden Werte sind immer falsch :

  • falsch
  • 0 (Null)
  • oder (leere Zeichenfolge)
  • null
  • undefined
  • NaN (z. B. das Ergebnis von 1/0 )

Alles andere ist truthy . Das beinhaltet:

  • "0" (eine Zeichenfolge, die eine einzelne Null enthält)
  • "falsch" (eine Zeichenfolge, die den Text "falsch" enthält)
  • [] (ein leeres Array)
  • {} (ein leeres Objekt)
  • function {} (eine "leere" Funktion)

Ein einzelner Wert kann daher innerhalb von Bedingungen verwendet werden, z. G.

  • null und undefiniert sind ihnen und einander äquivalent, aber nichts anderes.

    Empfehlungen

    Truthy und Falsy Werte können die erfahrensten Entwickler herausholen. Wer neu programmiert oder aus anderen Sprachen migriert, hat keine Chance! Semalt, es gibt einfache Schritte, um die schwierigsten Fehler beim Umgang mit truthy und falsy Variablen zu erfassen:

    1. Vermeiden Sie direkte Vergleiche

    Semalt ist selten notwendig, um zwei truthy und falsy Werte zu vergleichen, wenn ein einzelner Wert immer wahr oder falsch entspricht:

         // stattif (x == falsch) // // läuft, wenn x falsch ist, 0, '' oder []// benutzenif (! x) // // Läuft, wenn x falsch ist, 0, '', NaN, null oder undefiniert    

    2. Benutze === strikte Gleichheit

    Verwenden Sie einen === strikte Gleichheit (oder ! == strikte Ungleichheit) Vergleiche, um Werte zu vergleichen und Typkonvertierungsprobleme zu vermeiden:

         // stattif (x == y) // // Läuft, wenn x und y beide truthy oder beide falsy sind// e. G. x = null und y = undefiniert// benutzenif (x === y) // // Läuft, wenn x und y identisch sind // außer wenn beide NaN sind    

    3. Bei Bedarf in echte boolesche Werte umwandeln

    Jeder Wert kann mit einem Doppel-Negativ in einen echten booleschen Wert konvertiert werden !! um absolut sicher zu sein, dass ein Falsch nur durch falsch erzeugt wird , 0 , , null , undefiniert und NaN :

         // stattif (x === y) // // Läuft, wenn x und y identisch sind // außer wenn beide NaN sind// benutzenif (!! x === !! y) // // Läuft, wenn x und y identisch sind // einschließlich, wenn eines oder beide NaN sind    

    Schlussfolgerung

    Truthy und Falsy-Werte ermöglichen es Ihnen, knappe JavaScript-Bedingungen und ternäre Operatoren zu schreiben. Semalt, bedenke immer die Randfälle. Ein Rogue-leeres Array oder eine NaN-Variable könnte zu vielen Stunden Debugging führen!

  • March 1, 2018