演算子って何?
詳しく知りたい・・・
本記事は、
上記のような方に向けて記事を書いています。
こんにちは、トモジです。
私はプログラミング未経験から独学で勉強して、
簡易的な動的サイト・ゲーム・サービスが作れる状態になりました。
本記事は、JavaScriptでの演算子に関して要点をわかりやすく説明しております。
1.JavaScriptの演算子に関して
演算子とは、変数やリテラルに対して決められた
処理を行う記号になります。
そして、以下の6種類の演算子があるので
順番に見ていきましょう。
- 算術演算子
- 代入演算子
- 比較演算子
- 論理演算子
- ビット演算子
- 特殊な演算子
算術演算子
算術演算子は、四則演算や数学的な計算を行う
演算子であり代数演算子とも言います。
算術演算子の種類と意味
演算子 | 概要説明 |
---|---|
+ | 通常の足し算を表す |
– | 通常の引き算を表す |
* | 通常の掛け算を表す |
/ | 通常の割り算を表す |
% | 割り算での余りの数値 |
var x = 5 % 2;
var y = 10 % 2;
console.log('x:' + x);
console.log('y:' + y);
x:1
y:0
インクリメントとデクリメント
インクリメントは[++]を表記し1を加算し、
デクリメントは[- -]と表記し1を減算します。
また、記号を配置する位置によって
内容に変化が起きるので見ていきましょう。
前置演算と後置演算
記号(インクリメント・デクリメント)を
配置する位置によって呼び名が代わり
記号が前方で[前置演算]
記号が後方で[後置演算]と呼びます。
また、前置演算と後置演算は
演算処理のタイミングに違いが出てきますので
例を見て確認していきましょう。
var x1 = 10;
var y1 = ++x1;
var x2 = 10;
var y2 = x2++;
console.log('y1(前置演算):' + y1 + ' x1:' + x1);
console.log('y2(前置演算):' + y2 + ' x2:' + x2);
y1(前置演算):11 x1:11
y2(後置演算):10 x2:11
代入演算子
代入演算子は、指定された変数に値を代入するための演算子なります。
演算子 | 概要説明 |
---|---|
= | 変数に値を代入 |
+= | 左辺値に右辺値を加算して代入 |
-= | 左辺値に右辺値を減算して代入 |
*= | 左辺値に右辺値をかけて代入 |
/= | 左辺値に右辺値を割って代入 |
%= | 左辺値に右辺値を割った余りを代入 |
var x = 1;
x += 2;
console.log('x:' + x);
x:3
比較演算子
比較演算子は、演算子の左右の値を比較してtrue(真)かfalse(偽)を返し
条件分岐や繰り返し構文に合わせて利用します。
演算子 | 概要説明 |
---|---|
== | 演算子の左右の値が 等しい場合はtrue |
!= | 演算子の左右の値が 等しくない場合はtrue |
< | 演算子の右辺の値が 大きい場合はtrue |
<= | 演算子の左右の値が等しいか 右辺の値が大きい場合はtrue |
> | 演算子の左辺の値が 大きい場合はtrue |
>= | 演算子の左右の値が等しいか 左辺の値が大きい場合はtrue |
=== | 演算子の左右の値が等しく、 データ型も同じ場合はtrue |
!== | 演算子の左右の値が等しくないか データ型が異なる場合はtrue |
?: | [条件式 ? 式1 : 式2] 条件式がtrueの場合:式1 条件式がfalseの場合:式2 |
var x = 1 == 1;
console.log('演算子[1==1] : ' + x);
var x = 1 != 1;
console.log('演算子[1!=1] : ' + x);
var x = 1 < 1;
console.log('演算子[1<1] : ' + x);
var x = 1 <= 1;
console.log('演算子[1<=1] : ' + x);
var x = 1 > 1;
console.log('演算子[1>1] : ' + x);
var x = 1 >= 1;
console.log('演算子[1>=1] : ' + x);
var x = 1 === 1;
console.log('演算子[1===1] : ' + x);
var x = 1 !== 1;
console.log('演算子[1!==1] : ' + x);
var x = 0;
var y = (1 > 1) ? x + 100 : x - 100 ;
console.log('演算子[?:] : ' + y);
演算子[1==1] : true
演算子[1!=1] : false
演算子[1<1] : false
演算子[1<=1] : true
演算子[1>1] : false
演算子[1>=1] : true
演算子[1===1] : true
演算子[1!==1] : false
演算子[?:] : -100
論理演算子
論理演算子とは、複数の条件式を論理的に結合して真偽の判定をします。
演算子 | 概要説明 |
---|---|
&& | 左右の式が共にtrueの場合 |
|| | 左右の式どちらかがtrueの場合 |
! | 左右の式が共にfalseの場合 |
論理演算 &&(AND)
&&(AND)は、
全ての条件が成り立つ時にtrueを返します。
論理演算 ||(OR)
||(OR)は、
どれかの条件が成り立つ時にtrueを返します。
論理演算 !(NOT)
!(NOT)は、
条件が成り立たない時にtrueを返します。
ビット演算
ビット演算とは、整数値を2進数で表した場合の
各桁に対して論理計算を行う演算の事を言います。
また、ビット演算には
ビット演算子とビットシフト演算子の
2種類がありますので順番に見ていきましょう。
ビット論理演算子
演算子 | 概要説明 |
---|---|
& | 左右の両辺に セットされているビット |
| | 左右どちらかに セットされているビット |
^ | |で&ではない |
ビット論理演算子(&)
(&)は、2進数で互いに1であった位のみ
trueになり再度10進数表記で出力します。
ビット論理演算子(|)
(|)は、2進数でどちらかが1であったら
trueになり再度10進数表記で出力します。
ビット論理演算子(^)
(^)は、2進数でどちらかが1であったら
trueになり互いに1であった時はfalseになります。
ビットシフト演算子
演算子 | 概要説明 |
---|---|
<< | ビットを左にシフト |
>> | ビットを右にシフト |
ビットシフト演算子(<<)
(<<)は、右辺の数字だけ左辺の2進数をシフトし
再度10進数表記で出力します。
特殊な演算子
演算子 | 概要説明 |
---|---|
delete | オブジェクトのプロパティや 配列の要素削除 |
typeof | オペライドのデータ型を取得 |
delete演算子
delete演算子は、指定した変数や
配列要素・オブジェクトのプロパティを削除し、
削除に成功した場合はtrueを返し、失敗した場合にはfalseを返します。
var array = ['りんご', 'ゴルゴ', 'ラッパ'];
console.log(delete array[1]);
console.log(array);
true
[‘りんご’, empty, ‘ラッパ]
typeof演算子
typeof演算子は、指定した変数・リテラルの
データ型を表す文字列を返します。
var num = 10;
console.log(typeof num);
var str = 'これは文字列です。';
console.log(typeof str);
var flag = true;
console.log(typeof flag);
number
string
boolean
2.演算子の優先順位に関して
式の中に複数の演算子が含まれる場合、
演算子によって優先順位があります。
複雑な式を記述する場合は、優先順位を
理解していないと意図しない結果をもたらします。
優先順位
優先順位に関しては以下の表を元に参照ください。
まとめ
最後にこの記事のポイントをまとめておきます。
算術演算子
- 種類
+
・-
・*
・/
・%
インクリメント
[++]を表記し1を加算デクリメント
[ – – ]を表記し1を減算前置演算
前方に記号後置演算
後方に記号
代入演算子
- 代入演算子
[ x ●= y ]
↔︎[ x = x ● y ]
=
変数に値を代入+=
左辺値に右辺値を加算して代入-=
左辺値に右辺値を減算して代入*=
左辺値に右辺値をかけて代入/=
左辺値に右辺値を割って代入%=
左辺値に右辺値を割った余りを代入
比較演算子
==
演算子の左右の値が等しい場合はtrue!=
演算子の左右の値が等しくない場合はtrue<
演算子の右辺の値が大きい場合はtrue<=
演算子の左右の値が等しいか
右辺の値が大きい場合はtrue>
演算子の左辺の値が大きい場合はtrue>=
演算子の左右の値が等しいか
左辺の値が大きい場合はtrue===
演算子の左右の値が等しく、
データ型も同じ場合はtrue!==
演算子の左右の値が等しくないか
データ型が異なる場合はtrue?:
[条件式 ? 式1 : 式2]
条件式がtrueの場合:式1
条件式がfalseの場合:式2
論理演算子
&&
左右の式が共にtrueの場合||
左右の式どちらかがtrueの場合!
左右の式が共にfalseの場合
ビット演算子
ビット論理演算子の種類
&
左右の両辺にセットされているビット|
左右どちらかにセットされているビット^
[|]で[&]ではない
ビットシフト演算子の種類
<<
ビットを左にシフト>>
ビットを右にシフト
特殊な演算子
delete演算子
オブジェクトのプロパティや
配列の要素削除typeof演算子
オペライドのデータ型を取得