Convert True->1 and False->0 in Javascript?

Lots of ways to do this

// implicit cast
+true; // 1
+false; // 0
// bit shift by zero
true >>> 0; // 1, right zerofill
false >>> 0; // 0
true << 0; // 1, left
false << 0; // 0
// double bitwise NOT
~~true; // 1
~~false; // 0
// bitwise OR ZERO
true | 0; // 1
false | 0; // 0
// bitwise AND ONE
true & 1; // 1
false & 1; // 0
// bitwise XOR ZERO, you can negate with XOR ONE
true ^ 0; // 1
false ^ 0; // 0
// even PLUS ZERO
true + 0; // 1
false + 0; // 0
// and MULTIPLICATION by ONE
true * 1; // 1
false * 1; // 0

You can also use division by 1, true / 1; // 1, but I'd advise avoiding division where possible.

Furthermore, many of the non-unary operators have an assignment version so if you have a variable you want converted, you can do it very quickly.

You can see a comparison of the different methods with this jsperf.


Here is a more logical way Number()

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

Tags:

Javascript