inazuma code :演算子
inazuma code では、JavaScript に似た演算子をサポートしています。
ここでは、算術・論理・比較・三項・null 合体演算子の使い方と注意点を説明します。
算術演算子
演算子 | 説明 |
---|---|
+ | 加算 |
- | 減算 |
* | 乗算 |
/ | 除算 |
% | 剰余 |
+x / -x | 単項プラス/マイナス |
++x / x++ | 前置/後置インクリメント |
--x / x-- | 前置/後置デクリメント |
例:
1 + 2 * 3 // 7(乗算が先に評価される)
(1 + 2) * 3 // 9(括弧で優先順位を変更)
-5 % 3 // -2(負数の剰余)
x++; // 2(後置:返り値は元の値、x は 3 に更新)
++x; // 4(前置:更新後の値を返す)
論理演算子
演算子 | 説明 |
---|---|
&& | AND(両辺が真なら真) |
|| | OR(いずれかが真なら真) |
! | NOT(真偽を反転) |
短絡評価:
false && ...
の右辺は評価されないtrue || ...
の右辺は評価されない
返却値について:
-
x && y
x
が falsy な値ならばそのままx
を返します。x
が truthy な値ならばy
を評価してその結果を返します。
-
x || y
x
が truthy な値ならばそのままx
を返します。x
が falsy な値ならばy
を評価してその結果を返します。
例:
false && error() // false(error() は呼ばれない)
0 && foo() // 0(foo() は呼ばれない)
"foo" && bar // bar の評価結果
true || foo() // true(foo() は呼ばれない)
"" || "default" // "default"
null || getValue() // getValue() の評価結果
比較演算子
演算子 | 説明 |
---|---|
== | 型変換ありの等価比較 |
=== | 型変換なしの厳密等価比較 |
!= | 型変換ありの不等比較 |
!== | 型変換なしの厳密不等比較 |
< / > | 大小比較 |
<= / >= | 以上/以下比較 |
型変換の例:
1 == "1" // true (数値と文字列の型変換あり)
1 === "1" // false (型が異なるため false)
true == 1 // true
true === 1 // false
[] == false // true (空配列は false と等価)
{} == false // false (オブジェクトは false と等価ではない)
三項演算子
条件に応じて 2 つの値のうちどちらかを返します。
条件式 ? 値1 : 値2
例:
true ? "yes" : "no" // "yes"
false ? "yes" : "no" // "no"
// 他の式と組み合わせ
(true ? 5 : 10) + 1 // 6
null 合体演算子(??
)
左辺が null
の場合に右辺を返します。
false
や 0
は null
とはみなされません。
例:
null ?? "default" // "default"
"value" ?? "default" // "value"
false ?? "default" // false
(null ?? 1) + 5 // 6
Truthy / Falsy 値の一覧
判定 | 値の例 |
---|---|
Falsy | false 0 0.0 "" "0" [] null |
Truthy | true 1 1.0 "foo" "1" [0] {} x => x |
演算子の優先順位
優先順位 | 演算子 |
---|---|
1 ※最優先 | () |
2 | . ?. -> ?-> |
3 | ++ -- ! ... |
4 | * / % |
5 | + - |
6 | < <= > >= |
7 | == != === !== |
8 | && |
9 | || |
10 | .. |
11 | ?? |
12 | ?: (三項演算子) |
13 | |> |
14 | = |