コンピューター上でプログラムを作成するためには、演算子の理解が必要不可欠です。
しかし、演算子にはたくさんの種類があるため、演算子の名前を聞いただけでは役割をイメージしにくいかもしれません。
そこで今回では、JavaScriptにおける代表的な演算子の種類と役割を紹介していきます。

算術演算子

算術演算子は、数値的な計算する際に使用されます。
算術演算子には、以下の種類があります。

  • 加算「+」
  • 減算「-」
  • 除算「/」
  • 乗算「*」
  • 剰余「%」
  • べき乗「**」

また、「+」と「-」には、以下の算術演算子としての役割も持っています。

  • 単項プラス「+y」:数値でないyを数値に変換する
  • 単項マイナス「-y」:yの符号を反転する
  • 前置インクリメント「++y」:yに1を加える。1を加えたあとの値を返す
  • 後置インクリメント「y++」:yに1を加える。1を加える前の値を返す
  • 前置デクリメント「–y」:yから1を引く。1を引いたあとの値を返す
  • 後置デクリメント「y–」:yから1を引く。1を引く前の値を返す

各算術演算子を使うと、このような計算結果が返ります。

let a = 7;
let b = 2 - -a; // 9 

++b // 10
--b // 9 

b = b * 2; // 18 
b = b / 3; // 6

let b = - -aの部分を見ると、9という結果が出ています。これは、減算としての-ではなく、単項マイナスとしての-が働いているからです。
同じ-であっても、減算よりも単項マイナスの方が優先的に評価されます。

代入演算子

代入演算子は、変数に値を代入するときに使用します。
代入演算子には、以下の種類があります。

  • 代入「=」
  • 加算代入「+=」
  • 減算代入「-=」
  • 乗算代入「*=」
  • 余算代入「/=」
  • 剰余代入「%=」

例を見てみましょう。

let a = 5; 
let b = 10; 
let c = 'string'; 

a += b; 
console.log(a); // 15 

c += 'は文字列です'; 
console.log(c); // 'stringは文字列です'

+=により、加算と代入を同時に行うことができます。
このように代入演算子は、演算と代入が同時にできることが特徴です。

比較演算子

比較演算子は、2つの値を比較し評価を行った結果、trueまたはfalseを返します。
比較演算子には、以下の種類が用意されています。

  • 大なり「>」
  • 大なりイコール「>=」
  • 小なり「<」
  • 小なりイコール「<=」
  • 厳密等価「===」
  • 厳密不等価「!==」
  • 等価「==」
  • 不等価「!=」
let a = 2; 
let b = 3; 

console.log(a > b); // false 
if (a < b) console.log('aはbより小さいです'); // 'aはbより小さいです'
const c = 5; 
const d = '5'; 

console.log(c === d); // false 
console.log(c !== d ); // true; 
console.log(c == d); // true; 
console.log(c != d ); // false

console.log(a > b)は、正しい比較でないため、falseという結果となります。
if(a < b)では、評価の結果trueが返るため、if文の処理が実行されていることが分かります。

また、console.log(c == d)を見ると、数値の5と文字列の'5'は同等の値です。
一方で、console.log(c === d)は、値のデータ型まで評価対象であるため、2つの値は一致しないと評価されます。


論理演算子

論理演算子は、複数の条件に対して評価を行い、その結果をtrueかfalseで返します。
論理演算子には、以下の種類があります。

  • AND「&&」:AかつBの場合
  • OR「||」:AまたはBの場合
  • NOT「!」:Aではない場合

次の例を見てください。

const a = 5;
const b = 10;

console.log(a === 3 && a < b); // false
console.log(a === 3 || a < b); // true 
console.log(!(a > b)); // true

console.log(a === 3 && a < b)では、a === 3の部分の評価が偽となるため、全体の結果がfalseとなります。もしtrueを返す必要がある場合は、この部分がa === 5でなければいけません。
一方、console.log(a === 3 || a < b)では、a < bの部分の評価が真であるため、a === 3が偽であっても、全体の結果はtrueとなります。

console.log(!(a > b)) は、a > bが正しくない場合という意味です。条件としては一致するため、trueを返します。

typeof演算子

typeof演算子は、値のデータ型を返します。
typeof 値と記述することで、値のデータ型を参照することができます。

console.log(typeof 10); // 'number' 
console.log(typeof '文字列です'); // 'string' 
console.log(typeof true); // 'boolean' 
console.log(typeof {a: 10}); // 'object' 
console.log(typeof [10, 20, 30]); // 'object' 
console.log(typeof undefined); // 'undefined' 
console.log(typeof null); // 'object'

データ型については、以下の記事で詳しく解説しています。気になる方は参考にしてみてください。

まとめ

今回は、JavaScriptの代表的な演算子について解説しました。

プログラムでは、複数の演算子を合わせて使う場面も良くあるため、それぞれの役割を理解することが大切です。
各演算子については、以下の演算子入門シリーズで解説していますので、ぜひ参考にしてください。

合わせて読みたい演算子入門シリーズ

第1回:演算子の優先順位
第2回:演算子の種類と役割(当記事)
第3回:算術演算子
第4回:代入演算子
第5回:比較演算子
第6回:論理演算子