JavaScriptの演算子に関して

トモジのアイコン画像トモジ

演算子って何?
詳しく知りたい・・・

本記事は、
上記のような方に向けて記事を書いています。

こんにちは、トモジです。

私はプログラミング未経験から独学で勉強して、
簡易的な動的サイト・ゲーム・サービスが作れる状態になりました。

本記事は、JavaScriptでの演算子に関して要点をわかりやすく説明しております。

記事の内容

1.JavaScriptの演算子に関して

演算子とは、変数やリテラルに対して決められた
処理を行う記号になります。

そして、以下の6種類の演算子があるので
順番に見ていきましょう。

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を返します。

delete演算子の説明図
var array = ['りんご', 'ゴルゴ', 'ラッパ'];
console.log(delete array[1]);
console.log(array);
出力結果

true
[‘りんご’, empty, ‘ラッパ]

typeof演算子

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演算子
    オペライドのデータ型を取得

記事の内容
閉じる