JavaScript Hinzufügen Boolean

console.log(true+true); //2
console.log(typeof(true+true)); //number
console.log(isNaN(true+true)); //false

Warum ist die addition von 2 booleschen Typen, woraus sich eine Zahl? Ich verstehe, dass, wenn Sie nicht gleich (1/0 (Binär?)) es wäre ungeschickt, zu versuchen, führen Sie arithmetische Operationen mit einem boolean-Typ, aber ich kann nicht finden, die Argumentation hinter dieser Logik.

  • Denn Sie bekommen Umgerechnet in zahlen Number(true) + Number(true) === 2
  • Da true 1, wenn automatisch in eine Zahl konvertiert. Javascript ist die dynamische Typisierung in Aktion.
  • true wirft, um 1
  • Ich würde davon ausgehen, das + operand wird automatisch festgelegten Werte werden als 'verbundene', was in wahren Wesen behandelt wie eine numerische?
  • Ja, ich verstehe, dass, aber warum?
  • + tut das casting gibt.
  • Kann man da nicht hinzufügen, booleans, also es wandelt Sie in zahlen ersten.
  • So würde das bei einem anderen Betreiber?
  • Weil Javascript so gemacht. Versuchen, zu konvertieren Typen, so dass es passt. Es war eine design-Entscheidung, die der Schöpfer später bereut, aber es war bedeutet, um eine einfache scripting Sprache, die auf den ersten... also baute er in einigen "automation" für die Grundtypen.
  • Sicher... true/true === 1
  • Verwandte: stackoverflow.com/questions/20555155/why-is-the-answer-42
  • Jeder Betreiber, dass konvertieren Ihre Operanden um die Anzahl Arten wird dies tun.
  • ^^ Recht hat, versuchen true-true oder true*true sind, werden Sie behandelt, als diejenigen. Sie können auch casten zu einem string, sprich: true+''+true == "truetrue"
  • "JavaScript-Zwang Entmystifiziert" - webreflection.blogspot.de/2010/10/...
  • Das ist sehr gute Informationen. Danke Jungs
  • LOL wahr + wahr = 2... noch nie in meinem Leben!

Schreibe einen Kommentar