JavaScriptでブール値をトグルする方法:3つの方法とそれぞれの比較
JavaScriptでブール値をトグルする方法
方法1: 論理否定演算子
最もシンプルで分かりやすい方法は、論理否定演算子 !
を使う方法です。
let isLightOn = false;
// ライトがオンの場合、オフにする
if (isLightOn) {
isLightOn = !isLightOn;
} else {
// ライトがオフの場合、オンにする
isLightOn = !isLightOn;
}
console.log(isLightOn); // true
このコードでは、isLightOn
変数の現在の値を論理否定し、新しい値を代入しています。
方法2: ビット演算子
もう1つの方法は、ビット演算子 ^
(XOR) を使う方法です。
let isLightOn = false;
// ライトの状態をトグルする
isLightOn ^= true;
console.log(isLightOn); // true
このコードでは、isLightOn
変数の現在の値と true
をビットXOR演算し、新しい値を代入しています。 ビットXOR演算は、両方のビットが同じ場合に 0
、異なる場合に 1
を返す演算です。
補足
- 上記のコード例では、
isLightOn
変数にfalse
を初期化していますが、任意のブール値に置き換えることができます。 - どちらの方法を使うかは、好みの問題です。 論理否定演算子の方が分かりやすいという意見が多いですが、ビット演算子の方が簡潔に記述できるという意見もあります。
上記以外にも、以下のような方法でブール値をトグルすることができます。
- 条件付き三項演算子を使う
- 関数を使う
しかし、一般的には上記の方法1と方法2がよく使われます。
方法1: 論理否定演算子を使う
let isLightOn = false;
// ライトがオンの場合、オフにする
if (isLightOn) {
isLightOn = !isLightOn;
} else {
// ライトがオフの場合、オンにする
isLightOn = !isLightOn;
}
console.log(isLightOn); // true
説明
isLightOn
変数にfalse
を代入します。これは、ライトがオフの状態を表します。if
ステートメントを使用して、isLightOn
変数の現在の値をチェックします。isLightOn
がtrue
の場合、ライトがオンなのでオフにします。isLightOn
がfalse
の場合、ライトがオフなのでオンにします。isLightOn
を論理否定 (!
) して新しい値を代入します。
- コンソールに
isLightOn
変数の値を出力します。この例では、ライトがオンになっているため、true
が出力されます。
方法2: ビット演算子を使う
let isLightOn = false;
// ライトの状態をトグルする
isLightOn ^= true;
console.log(isLightOn); // true
isLightOn
変数の現在の値とtrue
をビットXOR演算 (^
) して、新しい値を代入します。
JavaScriptでブール値をトグルするその他の方法
条件付き三項演算子を使用して、ブール値をトグルすることができます。
let isLightOn = false;
isLightOn = !isLightOn;
console.log(isLightOn); // true
- コンソールに
isLightOn
変数の値を出力します。
方法4: 関数を使う
function toggleBoolean(booleanValue) {
return !booleanValue;
}
let isLightOn = false;
isLightOn = toggleBoolean(isLightOn);
console.log(isLightOn); // true
toggleBoolean
という名前の関数を作成します。この関数は、引数として渡されたブール値を論理否定し、その結果を返します。isLightOn
変数にfalse
を代入します。toggleBoolean
関数をisLightOn
変数に渡して、新しい値を代入します。
let isLightOn = false;
isLightOn = isLightOn ^ true;
console.log(isLightOn); // true
それぞれの方法の比較
方法 | 説明 | 利点 | 欠点 |
---|---|---|---|
論理否定演算子 | 最もシンプルで分かりやすい | 記述が簡潔 | 再利用できない |
ビット演算子 | 簡潔に記述できる | 論理否定演算子よりも分かりにくい | |
条件付き三項演算子 | 状況に応じて柔軟に記述できる | 記述が冗長になる場合がある | |
関数 | 再利用可能 | コードが煩雑になる場合がある | |
ビット論理演算子 | ビット演算に慣れている場合は簡潔に記述できる | 論理否定演算子よりも分かりにくい |
- シンプルで分かりやすい方法を求める場合は、論理否定演算子がおすすめです。
- 簡潔に記述したい場合は、ビット演算子がおすすめです。
- 状況に応じて柔軟に記述したい場合は、条件付き三項演算子がおすすめです。
- 再利用可能な方法を求める場合は、関数がおすすめです。
- 上記以外にも、JavaScriptでブール値をトグルする方法はいくつか考えられます。
- 自分に合った方法を見つけて、使いこなしましょう。
javascript boolean toggle