Die Antwort auf den zweiten Teil der Frage, "ist diese Eigenart jemals nützlich?", ist vielleicht nein, wie in einer früheren Antwort angemerkt, wenn es tatsächlich eine Eigenart der Sprache (Javascript) ist, dass true in 1 umgewandelt wird, aber dass der Programmierer im Allgemeinen 1 und true (und 0 und false) nicht als das Gleiche ansieht.
Wenn Sie jedoch ein mentales Modell haben, bei dem 1 wahr und 0 falsch ist, dann führt dies zu allen möglichen netten booleschen Techniken, die extrem nützlich, mächtig und direkt sind. So könnte man zum Beispiel einen Zähler direkt mit dem Ergebnis A > 100 inkrementieren, was den Zähler erhöhen würde, wenn A größer als 100 ist. Diese Technik könnte in Java als eine Eigenart oder ein Trick angesehen werden, aber in einer Array- oder funktionalen Sprache kann sie idiomatisch sein.
Ein klassisches Beispiel in der Array-Sprache APL wäre es, die Anzahl der Elemente in einem Array zu zählen, die (sagen wir) größer als 100 sind:
+/A>100
Wenn A das 5-Elemente-Array 107 22 256 110 3 ist, dann:
A>100
ergibt das 5 Elemente umfassende boolesche Array:
1 0 1 1 0
und summieren dieses boolesche Ergebnis:
+/1 0 1 1 0
ergibt die endgültige Antwort:
3
Diese Frage ist ein perfektes Beispiel dafür, dass diese Technik sehr nützlich ist, vor allem, wenn das Problem verallgemeinert wird, um zu bestimmen, ob n von m booleschen Werten wahr sind.
Prüfen, ob mindestens zwei von drei Booleschen Werten wahr sind