javascript でブール値を切り替える簡単な方法はありますか?
これまでのところ、私がカスタム関数を書くこと以外に得た最良のものは三項です。
bool = bool ? false : true;
bool = !bool;
これはほとんどの言語に当てはまります。
ブール値が数値(つまり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)
これは、各行で変数を繰り返すよりもスキャンが簡単です。
この方法はすべての(主要な)ブラウザ(およびほとんどのプログラミング言語)で機能します。
bool = bool != true;
その一例です。
これを実際に見てみましょう。
var b = true;
console.log(b); // true
b = !b;
console.log(b); // false
b = !b;
console.log(b); // true
初期値がnull
またはundefined
で、それがfalse
になるはずであることを除いて、私は同じことをする切り替え方法を探していました。
ここにあります:
booly = !(booly != false)
bool === tool ? bool : tool
tool
(別のブール値)が同じ値を持つ場合に値をtrueに保持したい場合