👏
[JavaScript] 基本演算 — 数値と演算子 — 論理演算子
算術演算子
算術演算子 | 名前 | 例 |
---|---|---|
+ | 加算 | 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 で評価された場合、最後の値を返します。
参考した資料:
Discussion