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

时间:2013-02-09 11:44:17

标签: javascript

此外:

true ? 1 : 0

是否有任何可以在Javascript中“翻译”True->1False->0的简短技巧?

我搜索过但找不到任何其他选择

什么你的意思是“短道理”?

回答:与~~6.6相同,是Math.floor

的诀窍

4 个答案:

答案 0 :(得分:144)

有很多方法可以做到这一点

// 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使用除法,但我建议尽可能避免分割。

此外,许多非一元运算符都有一个assignment version所以如果你有一个你想要转换的变量,你可以很快地完成它。

您可以看到使用this jsperf对不同方法进行比较。

答案 1 :(得分:12)

...或者您可以使用+true+false

答案 2 :(得分:10)

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

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

答案 3 :(得分:3)

另一种方法可能是使用Number()

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