JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptの感嘆符(!)演算子とは?論理否定の基本と使い方

JavaScriptにおける感嘆符(!)は、論理否定(NOT)演算子と呼ばれる単項演算子です。式や値の前に付けることで、その真偽値を反転させます。つまり、truefalse に、falsetrue に変換されます。

論理否定演算子(!)の動作

「!」演算子は、対象の値がtruthy(真とみなされる値)であれば false を返し、falsy(偽とみなされる値)であれば true を返します。

falsyな値には以下のようなものがあります。

  • false
  • 0(数値のゼロ)
  • ""(空文字列)
  • null
  • undefined
  • NaN

サンプルコード

以下のコードを実行すると、JavaScriptでの感嘆符(!)演算子の動作を確認できます。

<html>
   <head>
      <title>JavaScript Boolean</title>
   </head>

   <body>
      <script>
         var answer = true;
         document.write(answer);
         document.write("<br>"+!answer);
      </script>
   </body>
</html>

実行結果

true
false

この例では、変数 answertrue を代入しています。answer をそのまま出力すると true が表示され、「!」を付けた !answer を出力すると、否定されて false が表示されます。

補足:二重否定(!!)で真偽値に変換

「!」を2回続ける !!value という書き方は、任意の値を明示的にブール値(true / false)へ変換する際によく使われるテクニックです。条件分岐などで値の有無を判定したい場合に便利なので、あわせて覚えておくと良いでしょう。

  1. JavaScriptのビット単位NOT(~)演算子とは?仕組みと使い方を解説

    JavaScriptにおけるビット単位NOT(~)演算子は、数値を32ビットの2進数として扱い、すべてのビットを反転させる(0を1に、1を0にする)単項演算子です。この演算子の結果は、常に -(x + 1) と等しくなります。つまり、元の数値の符号を反転させて1を引いた値が返されるため、覚えておくと便利です。NOT演算の仕組み例えば、数値「7」は32ビットの2進数で次のように表現されます。7 = 00000000000000000000000000000111これにNOT演算(~)を適用すると、すべてのビットが反転され、次のようになります。~7 = 1111111111111111111111

  2. JavaScriptのビットごとのOR(|)演算子とは?使い方をわかりやすく解説

    JavaScriptにおけるビットごとのOR(|)演算子は、2つの数値を2進数のビット列として比較し、対応するビットのどちらか一方でも「1」であれば結果として「1」を返す演算子です。両方のビットが「0」の場合のみ、結果は「0」になります。ビットOR演算の基本ルールビットごとのOR演算は、以下のようなルールで各ビットが評価されます。0 | 0 → 00 | 1 → 11 | 0 → 11 | 1 → 1サンプルコード以下のコードを実行すると、JavaScriptのビットごとのOR(|)演算子の動作を確認できます。この例では、「7」と「1」をOR演算しています。<!DOCTYPE html&