Besides :
true ? 1 : 0
is there any short trick which can "translate" True->1
and False->0
in Javascript ?
I've searched but couldn't find any alternative
What do you mean by "short trick" ?
answer : same as ~~6.6
is a trick forMath.floor
0 and 1 are type 'number' but in a Boolean expression, 0 casts to false and 1 casts to true . Since a Boolean expression can only ever yield a Boolean, any expression that is not expressly true or false is evaluated in terms of truthy and falsy. Zero is the only number that evaluates to falsy.
In JavaScript “0” is equal to false because “0” is of type string but when it tested for equality the automatic type conversion of JavaScript comes into effect and converts the “0” to its numeric value which is 0 and as we know 0 represents false value. So, “0” equals to false.
int() turns the boolean into 1 or 0 . Note that any value not equal to 'true' will result in 0 being returned.
Boolean type take only two literal values: true and false. These are distinct from numeric values, so true is not equal to 1, and false is not equal to 0. I know, that every type in JavaScript has a Boolean equivalent.
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.
Another way could be using Number()
Number(true) // = 1 Number(false) // = 0
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With