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

Roy*_*mir 60 javascript

此外:

true ? 1 : 0

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

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

"短道戏"是什么意思?

回答:同样~~6.6是一招Math.floor

Pau*_* S. 158

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

// 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
Run Code Online (Sandbox Code Playgroud)

您还可以通过使用部门1,true / 1; // 1但我建议避免部门在可能的情况.

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

您可以使用此jsperf查看不同方法的比较.


Muh*_*mad 22

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

Number(true) // = 1
Number(false) // = 0
Run Code Online (Sandbox Code Playgroud)

  • 由于有打字背景,我更喜欢这种方式,因为它清楚地表明您要返回的内容。我查看了已接受答案中的一些示例,老实说我无法告诉您结果是什么 (4认同)

bsi*_*nau 12

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


whi*_*win 10

你可以使用~~boolean,boolean显然是一个布尔值.

~~true  // 1
~~false // 0
Run Code Online (Sandbox Code Playgroud)