メインコンテンツまでスキップ

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

    • xfalsy な値ならばそのまま x を返します。
    • xtruthy な値ならば y を評価してその結果を返します。
  • x || y

    • xtruthy な値ならばそのまま x を返します。
    • xfalsy な値ならば 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 の場合に右辺を返します。 false0null とはみなされません。

例:

null ?? "default"    // "default"
"value" ?? "default" // "value"
false ?? "default" // false
(null ?? 1) + 5 // 6

Truthy / Falsy 値の一覧

判定値の例
Falsyfalse 0 0.0 "" "0" [] null
Truthytrue 1 1.0 "foo" "1" [0] {} x => x

演算子の優先順位

優先順位演算子
1 ※最優先()
2. ?. -> ?->
3++ -- ! ...
4* / %
5+ -
6< <= > >=
7== != === !==
8&&
9||
10..
11??
12?:(三項演算子)
13|>
14=