JavaScriptの感嘆符(!)演算子とは?論理否定の基本と使い方
JavaScriptにおける感嘆符(!)は、論理否定(NOT)演算子と呼ばれる単項演算子です。式や値の前に付けることで、その真偽値を反転させます。つまり、true は false に、false は true に変換されます。
論理否定演算子(!)の動作
「!」演算子は、対象の値がtruthy(真とみなされる値)であれば false を返し、falsy(偽とみなされる値)であれば true を返します。
falsyな値には以下のようなものがあります。
false0(数値のゼロ)""(空文字列)nullundefinedNaN
サンプルコード
以下のコードを実行すると、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
この例では、変数 answer に true を代入しています。answer をそのまま出力すると true が表示され、「!」を付けた !answer を出力すると、否定されて false が表示されます。
補足:二重否定(!!)で真偽値に変換
「!」を2回続ける !!value という書き方は、任意の値を明示的にブール値(true / false)へ変換する際によく使われるテクニックです。条件分岐などで値の有無を判定したい場合に便利なので、あわせて覚えておくと良いでしょう。
-
JavaScriptのビット単位NOT(~)演算子とは?仕組みと使い方を解説
JavaScriptにおけるビット単位NOT(~)演算子は、数値を32ビットの2進数として扱い、すべてのビットを反転させる(0を1に、1を0にする)単項演算子です。この演算子の結果は、常に -(x + 1) と等しくなります。つまり、元の数値の符号を反転させて1を引いた値が返されるため、覚えておくと便利です。NOT演算の仕組み例えば、数値「7」は32ビットの2進数で次のように表現されます。7 = 00000000000000000000000000000111これにNOT演算(~)を適用すると、すべてのビットが反転され、次のようになります。~7 = 1111111111111111111111
-
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&