みかづきブログ その3

3ヶ月つづけてみました。

JavaScriptで真偽値(Boolean)を数値(Number)にキャストする

kimizuka.hatenablog.com

数値(Number)を真偽値(Boolean)にすることはよくあるのですが、逆を考えたときに一瞬むむむと思ったのでメモしておきます。


JavaScript

Number(true); // => 1
Number(false); // => 0

true - 0; // => 1
false - 0; // => 0

true / 1; // => 1
false / 1; // => 0

+true; // => 1
+false; // => 0

parseInt(true, 10); // => NaN
parseInt(false, 10); // => NaN

Numberの引数に渡すのが一番意味が通りそうですね。
ただし new をつけてしまうとNumberオブジェクトが返ってきてしまい、

(new Number(true)).valueOf(); // => 1
(new Number(false)).valueOf(); // => 0

と、valueOfで値を取り出さなければならなくなってしまうので注意が必要です。