在JavaScript中转换True-> 1和False-> 0?
另外:
true ? 1 : 0
有没有什么简短的技巧可以在Javascript中“翻译” False->0
True->1
和False->0
?
我已经search,但找不到任何其他select
你是什么意思的“短诀”?
回答:与~~6.6
相同是Math.floor
一个技巧
很多方法来做到这一点
// 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
你也可以使用除1
, true / 1; // 1
true / 1; // 1
,但是我build议尽可能避免分割。
此外,许多非一元运算符都有一个赋值版本,所以如果你有一个你想要转换的variables,你可以很快地完成。
你可以看到这个jsperf的不同方法的比较。
…或者你可以使用+true
和+false
你可以使用~~boolean
,其中boolean
(显然)是一个布尔值。
~~true // 1 ~~false // 0