Wert ist nicht wahr und nicht unwahr

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wert ist nicht wahr und nicht unwahr

    Hi.

    Hab was interessantes gefunden im Netz (JavaScript):

    var str = '0';

    alert('str==true => ' + (str == Number(true)) + '\n' + '!str==true => ' + (!str == Number(true)));

    Warum ist in dem Fall der Wert weder wahr noch unwahr (ist ja beides mal 'false')? Mir leuchtet das gerade irgendwie nicht ein, oder hab ich jetzt einfach ein Brett vorm Kopf?! Danke für die Erklärung.

    mfg streuner
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

  • #2
    Der Vergleich muss
    Code:
    str != Number(true)
    lauten. Dass
    Code:
    !str == Number(true)
    false ist, ist total logisch.

    Warum castest du true/false auf number? Das ergibt doch keinen Sinn. Aufgelöst ergibt sich
    Code:
    '0' == 1
    was false ist und
    Code:
    !'0' == 1
    was noch weiter aufgelöst
    Code:
    !true == 1
    und schließlich
    Code:
    false == 1
    ergibt und logischerweise auch false ist.

    Also absolut nicht interessant und völlig logisch.

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Zitat von AmicaNoctis Beitrag anzeigen
      Der Vergleich muss
      Code:
      str != Number(true)
      lauten. Dass
      Code:
      !str == Number(true)
      false ist, ist total logisch.

      Warum castest du true/false auf number? Das ergibt doch keinen Sinn. Aufgelöst ergibt sich
      Code:
      '0' == 1
      was false ist und
      Code:
      !'0' == 1
      was noch weiter aufgelöst
      Code:
      !true == 1
      und schließlich
      Code:
      false == 1
      ergibt und logischerweise auch false ist.

      Also absolut nicht interessant und völlig logisch.

      Amica
      Hm...bin noch nicht wirklich wach anscheinend*gähn*! Ich hab diesen Code bei selfhtml im Forum gefunden, wo darüber diskutiert wurde. thanx.

      mfg streuner
      Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
      der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

      "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

      Kommentar


      • #4
        Hast du die URL dazu?
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Schau mal hier:

          SELFHTML Forumsarchiv / 2009 / Oktober / JS Typprobleme

          mfg streuner
          Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
          der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

          "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

          Kommentar


          • #6
            Einen Thread mit Beispielen für richtig komisches Javascript-Verhalten gibts bei Stack Overflow:
            Strangest language feature (2., 3. und 5. Antwort)
            Kannte ich viele noch nicht.

            In javascript

            '5' + 3 gives '53'

            whereas

            '5' - 3 gives 2

            Kommentar

            Lädt...
            X