コンピューター上でプログラムを作成するためには、演算子の理解が必要不可欠です。
しかし、演算子にはたくさんの種類があるため、演算子の名前を聞いただけでは役割をイメージしにくいかもしれません。
そこで今回では、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'
データ型については、以下の記事で詳しく解説しています。気になる方は参考にしてみてください。
プログラミング言語には、言語ごとのデータの型というものが存在します。 例えば、「9」を数値、「'こんにちは'」を文字列、「function(){}」を関数など、それぞれデータの種類が異なるように、これらのデータにはそれぞれの型があるということです。 数値を扱った計算を行う時や、ある機能を持た...
まとめ
今回は、JavaScriptの代表的な演算子について解説しました。
プログラムでは、複数の演算子を合わせて使う場面も良くあるため、それぞれの役割を理解することが大切です。
各演算子については、以下の演算子入門シリーズで解説していますので、ぜひ参考にしてください。
合わせて読みたい演算子入門シリーズ
第1回:演算子の優先順位
第2回:演算子の種類と役割(当記事)
第3回:算術演算子
第4回:代入演算子
第5回:比較演算子
第6回:論理演算子
コメント