web-dev-qa-db-ja.com

ブール値を切り替えるには?

javascript でブール値を切り替える簡単な方法はありますか?

これまでのところ、私がカスタム関数を書くこと以外に得た最良のものは三項です。

bool = bool ? false : true;
347
Chris Dutrow
bool = !bool;

これはほとんどの言語に当てはまります。

777
Jordan

ブール値が数値(つまり0または1)に変換されても構わない場合は、 Bitwise XOR Assignment Operator を使用できます。そのようです:

bool ^= true;   //- toggle value.


長い説明的なブール名を使用する場合、これは特に優れています。例えば、

var inDynamicEditMode   = true;     // Value is: true (boolean)
inDynamicEditMode      ^= true;     // Value is: 0 (number)
inDynamicEditMode      ^= true;     // Value is: 1 (number)
inDynamicEditMode      ^= true;     // Value is: 0 (number)

これは、各行で変数を繰り返すよりもスキャンが簡単です。

この方法はすべての(主要な)ブラウザ(およびほとんどのプログラミング言語)で機能します。

76
Brock Adams
bool = bool != true;

その一例です。

9
Feeco

これを実際に見てみましょう。

var b = true;

console.log(b); // true

b = !b;
console.log(b); // false

b = !b;
console.log(b); // true

とにかく、 あなたが現在持っているものよりも短い方法はありません。

4
student

初期値がnullまたはundefinedで、それがfalseになるはずであることを除いて、私は同じことをする切り替え方法を探していました。

ここにあります:

booly = !(booly != false)
1
HeyJude
bool === tool ? bool : tool

tool(別のブール値)が同じ値を持つ場合に値をtrueに保持したい場合

1
Ardhi