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

JavaScriptに「&」論理演算子はある?単一アンパサンドの正体はビットAND演算

結論から言うと、JavaScriptには単一の「&」による論理演算子は存在しません。単一の「&」はビット単位のAND(ビットごとの論理積)演算子として機能します。

AND演算では、2つの入力がどちらも1である場合にのみ結果が1になり、それ以外の場合は0となります。論理条件の評価に使いたい場合は「&&」(論理AND)を使用する必要がある点に注意しましょう。

コード例

var firstValue = 5;
var secondValue = 4;
var result = firstValue & secondValue;
console.log(result);

上記のプログラムを実行するには、次のコマンドを使用します。

node fileName.js

ここでは、ファイル名を「demo172.js」としています。

出力結果

このプログラムを実行すると、以下の出力が得られます。

PS C:\Users\Amit\javascript-code> node demo172.js
4

なぜ結果が「4」になるのか?

これは、数値を二進数(バイナリ)で考えると理解しやすくなります。値5は二進数で「101」、値4は「100」と表されます。

5 =     1 0 1
4 =   & 1 0 0
----------------
      1 0 0  → 結果は 4
----------------

各ビットを比較すると、最下位ビット以外は両者とも一致しています。AND演算では「両方が1の場合のみ1」となるため、計算結果は「100」、つまり十進数の4になります。

まとめ

  • JavaScriptの単一の「&」はビット単位のAND演算子であり、論理演算子ではない。
  • 論理演算を行いたい場合は「&&」を使う。
  • ビット演算は数値を二進数に変換して各桁ごとに処理される。
  1. JavaScriptスプレッド演算子の使い方を徹底解説!配列の展開と結合の基本

    JavaScriptのスプレッド演算子(...)は、配列を個々の要素へと展開できる便利な構文です。使い方は非常にシンプルで、配列名の前にドット3つ(...)を記述するだけです。 スプレッド演算子の基本構文 [...配列名] この構文により、配列の中身が個別の要素として展開されます。代表的な活用場面は以下の通りです。 複数の配列を結合して、新しい配列を作成する 既存の配列のコピー(シャローコピー)を作る 関数を呼び出す際に、配列の各要素を引数として渡す 実装例:2つの配列をスプレッド演算子で結合する 次のサンプルコードでは、数値の配列 arr1 と文字列の配列 arr2 をスプレッド演算

  2. JavaScriptのグループ化演算子とは?優先順位の制御方法をサンプルコードで解説

    グループ化演算子とはJavaScriptのグループ化演算子は、丸括弧「()」で表され、式を評価する際の優先順位を制御するために使用されます。通常、演算子にはあらかじめ決められた優先順位があり、乗算(*)や除算(/)は加算(+)や減算(-)よりも先に評価されます。しかし、グループ化演算子で式を囲むことで、この優先順位を意図的に変更し、囲まれた部分を最優先で計算させることができます。例えば「2+2*5/22」という式の場合、標準の優先順位では乗算・除算が先に実行されますが、丸括弧を使うことで「(2+2)*5/22」のように加算を先に行わせることが可能です。サンプルコード以下は、JavaScript