80

その上 :

true ? 1 : 0

JavascriptでTrue->1「翻訳」できる短いトリックはありますか?False->0

検索しましたが、代替手段が見つかりませんでした

「ショートトリック」とはどういう意味ですか?

答え : のトリックと同じ~~6.6ですMath.floor

4

4 に答える 4

212

これを行う多くの方法

// 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を使用して、さまざまなメソッドの比較を確認できます。

于 2013-02-09T11:49:54.163 に答える
13

...またはあなたが使用することができ+trueます+false

于 2013-02-09T11:49:23.420 に答える
12

を使用できます~~booleanbooleanは (明らかに) ブール値です。

~~true  // 1
~~false // 0
于 2013-02-09T11:46:43.863 に答える