在JavaScript中转换True-> 1和False-> 0?

另外:

true ? 1 : 0

有没有什么简短的技巧可以在Javascript中“翻译” False->0 True->1False->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 

你也可以使用除1true / 1; // 1 true / 1; // 1 ,但是我build议尽可能避免分割。

此外,许多非一元运算符都有一个赋值版本,所以如果你有一个你想要转换的variables,你可以很快地完成。

你可以看到这个jsperf的不同方法的比较。

…或者你可以使用+true+false

你可以使用~~boolean ,其中boolean (显然)是一个布尔值。

 ~~true // 1 ~~false // 0