否定演算子(!) | 論理演算子 | JavaScript 超完全入門 基本から発展までのすべて

スポンサーリンク
スポンサーリンク

否定演算子とは?

否定演算子(!)は、ブール値を反転させるための演算子です。具体的には、truefalseに、falsetrueに変換します。この演算子は、条件が「真でない」場合に処理を行うような状況で非常に便利です。

console.log(!true);   // false
console.log(!false);  // true

この例では、!truefalseを、!falsetrueを返します。これにより、条件の逆を簡単に表現できます。

否定演算子の具体例

否定演算子を使って、条件が「真でない」場合の動作を実行する例を見てみましょう。

let isRaining = false;

if (!isRaining) {
    console.log("今日は雨が降っていません");
}

この例では、isRainingfalseなので、否定演算子を使って!isRainingtrueとなり、「今日は雨が降っていません」というメッセージが表示されます。

否定演算子の仕組み

否定演算子は、オペランドをブール値に変換してから、その値を反転します。たとえば、数値や文字列などの非ブール値も、否定演算子を使うと自動的にブール値に変換されます。

console.log(!0);        // true
console.log(!1);        // false
console.log(!"");       // true
console.log(!"Hello");  // false

この例では、0や空文字列("")はfalseとして扱われ、!0!""trueを返します。一方、1"Hello"のような値はtrueとして扱われ、それらを否定するとfalseになります。

二重否定演算子(!!)

JavaScriptでは、否定演算子を2回連続して使うことにより、値をブール値として明示的に変換することができます。これを二重否定演算子!!)と呼びます。

console.log(!!0);        // false
console.log(!!1);        // true
console.log(!!"");       // false
console.log(!!"Hello");  // true

この例では、!!0!!""false!!1!!"Hello"trueを返します。これにより、任意の値をブール値として扱いたい場合に役立ちます。

否定演算子の動作をまとめる

以下に、否定演算子の動作をまとめた表を示します。

元の値 否定(!) 二重否定(!!)
true false true
false true false
1 false true
0 true false
"Hello" false true
"" true false

プログラムの解説

<script>
// 否定演算子の例
console.log(!true);      // false
console.log(!false);     // true

// 非ブール値への適用
console.log(!0);         // true
console.log(!1);         // false

// 二重否定演算子の例
console.log(!!0);        // false
console.log(!!1);        // true
console.log(!!"");       // false
console.log(!!"Hello");  // true
</script>

このプログラムでは、否定演算子を使って値を反転させたり、二重否定を使って値をブール型に変換したりしています。これにより、条件式における反転や、真偽値の確認が簡単に行えます。

まとめ

否定演算子(!)は、ブール値を反転させるための便利なツールです。また、二重否定演算子(!!)を使うことで、任意の値を明示的にブール型に変換することができます。JavaScriptの条件式や真偽値の操作において、否定演算子を適切に使いこなすことで、より柔軟なプログラムを作成することが可能です。