Ответ на вторую часть вопроса: "Этот причуды когда-нибудь полезны?" возможно, нет, как отмечалось в предыдущем ответе, если это действительно изюминка языка (Javascript), значение true приведено к 1, но в общем случае программист не видит 1 и true (и 0 и false) как то же самое.
Если, однако, у вас есть ментальная модель, в которой 1 является истинным, а 0 ложным, то это приводит к всевозможным хорошим логическим методам, которые являются чрезвычайно полезными, мощными и прямыми. Например, вы могли бы увеличить счетчик напрямую с результатом A> 100, что увеличило бы счетчик, если A больше 100. Этот метод можно рассматривать как причуду или уловку в Java, но в массиве или функциональном языке может быть идиоматическим.
Классическим примером в APL на языке массива будет подсчет количества элементов в массиве, которые, скажем, больше 100:
+/A>100
Где, если A - массив из 5 элементов 107 22 256 110 3, то:
A>100
возвращает логический массив из 5 элементов:
1 0 1 1 0
и суммируя этот логический результат:
+/1 0 1 1 0
дает окончательный ответ:
3
Этот вопрос является прекрасным примером того, где этот метод был бы очень полезен, особенно если обобщить задачу, чтобы определить, истинны ли n из m логических значений.
Проверьте, верно ли хотя бы два из трех логических значений