👏

[JavaScript] 基本演算 — 数値と演算子 — 論理演算子

2022/01/31に公開

算術演算子

算術演算子 名前
+ 加算 5 + 2
- 減算 5 - 2
* 乗算 5 * 2
/ 除算 5 / 2
% 剰余 5 % 2
** 指数 5 ** 2
++ 1を加算 ++5
-- 1を減算 --5

※ ++ と ーー の場合、前置演算と後置演算があります。
例:

let a = 5
let b

//前置演算の場合は a は1を加算した後、b に代入します。
b = ++a 
console.log(a, b)  // a = 6, b = 6

//後置演算の場合は a は1を加算する前、b に代入します。
b = a++ 
console.log(a, b)  // b = 5, a = 6

1を減算(--)も同じ仕組みです。

つまり前置演算では先にインクリメント(またはデクリメント)を行ってから他の処理を行い、後置演算では先に他の処理を行ってから最後にインクリメント(またはデクリメント)を行うという挙動の違いがあります。

代入演算子

代入演算子 同様のコード
+= a += b a = a + b
-= a -= b a = a - b
*= a *= b a = a * b
/= a /= b a = a / b
比較演算子 名前 メモ
=== 厳密な等価 値とデータ型を比較
== 等価 値だけを比較(エラーとなる可能性がありますのでお勧めしません)
!== 厳密な不等価 値とデータ型を比較
!= 不等価 値だけを比較(エラーとなる可能性がありますのでお勧めしません)
< 小なり
> 大なり
<= 以下なり
>= 以上なり

論理演算子

論理演算子 論理 返す値
&& 論理積 (AND) True かつ False, すべてのオペランドに初めて False の値 かつ すべてのオペランドに最後の True の値
|| 論理和(OR) True かつ False, すべてのオペランドに初めて True の値 かつ すべてのオペランドに最後の False の値
論理否定 True, False

論理演算子は Boolean (論理) 値で使用され、True か False を返すことは一般的です。

!(論理否定演算)は Boolean 値(True, False)しか返しませんが、&&(論理積)と ||(論理和)はBoolean 値 以外は指定されたオペランドのうち一つの値を返します。

Boolean 値で Falseに変換することができる式の例を示します。
・null
・NaN
・0
・空文字列 ("" または '' または ``)
・undefined
・false

例:

let a = 1 && hello && NaN & 0  
console.log(a)  // a = NaN(初めて False の値を返して、代入する)

let a = 1 || hello || NaN || 0  
console.log(a)  // a = 1 (初めて True の値をを返して、代入する)

論理積の式は左から右へと評価され、返す値を見つかった時点で評価停止となります。全部のオペランドを評価するではありません。

・&& の場合:
初めて False の値を返します。全部オペランドが True で評価された場合、最後の値を返します。

・|| の場合:
&& と逆に初めて True の値を返します。全部オペランドが False で評価された場合、最後の値を返します。

参考した資料:
https://developer.mozilla.org/ja/docs/Learn/JavaScript/First_steps/Math
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Logical_AND
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Logical_OR
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Logical_NOT

Discussion