另外:
true ? 1 : 0
有没有可以“翻译”True->1和False->0使用Javascript的简单技巧?
我已搜寻,但找不到其他选择
您所说的“短招”是什么意思?
答案:同~~6.6是一招Math.floor
另外:
true ? 1 : 0
有没有可以“翻译”True->1和False->0使用Javascript的简单技巧?
我已搜寻,但找不到其他选择
您所说的“短招”是什么意思?
答案:同~~6.6是一招Math.floor
Answers:
有很多方法可以做到这一点
// 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但我建议避免部门在可能的情况。
此外,许多非一元运算符都有赋值版本,因此如果您要转换的变量可以很快完成。
您可以看到与此jsperf不同方法的比较。
您可以使用~~boolean,其中boolean(显然)是布尔值。
~~true // 1
~~false // 0
true + true + true == 3