コンテンツにスキップ

演算子

  1. pipe — パイプライン
  2. or — 論理OR
  3. and — 論理AND
  4. eq / neq / not eq / is / instanceof — 等価 / 型チェック
  5. lt / gt / lelt eq) / gegt eq) — 比較
  6. add / sub — 加算 / 減算
  7. mul / div / mod — 乗算 / 除算 / 剰余
  8. pow — べき乗
  9. 単項: not / neg / typeof / await / delete / new
  10. 後置: . アクセス / [args] 呼び出し / as キャスト
  11. 基本: リテラル、識別子、括弧
data pipe filter
data pipe filter pipe map
data pipe transform[extra-arg]
data pipe .method[arg]

コンパイル結果:

filter(data)
map(filter(data))
transform(data, extraArg)
data.method(arg)
const x be 42
let y be 10
y be 20
a add b -- a + b
a sub b -- a - b
a mul b -- a * b
a div b -- a / b
a mod b -- a % b
a pow b -- a ** b
neg x -- -x

eqis は同じように使えます。右辺が型名(string, number, null, 大文字始まりのクラス名など)の場合は型チェックになり、それ以外は厳密等価比較(===)になります。

不等価には neq または not eq を使います。以下はどちらも le と同じ意味です: lt eq。以下はどちらも ge と同じ意味です: gt eq

a eq b -- a === b
a neq b -- a !== b
a not eq b -- a !== b(別の書き方)
a lt b -- a < b
a gt b -- a > b
a le b -- a <= b
a lt eq b -- a <= b(別の書き方)
a ge b -- a >= b
a gt eq b -- a >= b(別の書き方)
-- eq と is は混同して使える
a eq b -- a === b(値の比較)
a is b -- a === b(値の比較)
a eq string -- typeof a === "string"(型チェック)
a is string -- typeof a === "string"(型チェック)

..(包含)と ...(排他)を使って数値範囲から配列を生成します:

const a be [0..5] -- [0, 1, 2, 3, 4, 5]
const b be [0...5] -- [0, 1, 2, 3, 4]
const c be [1..10] -- [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
const d be [1...10] -- [1, 2, 3, 4, 5, 6, 7, 8, 9]

..(包含)または ...(排他)をブラケットアクセス内で使い、配列の一部を切り出します:

const numbers be [0, 1, 2, 3, 4, 5, 6]
const middle be numbers[2..4] -- [2, 3, 4]
const partial be numbers[1...4] -- [1, 2, 3]

スライスに代入することで配列の一部を置換できます:

numbers[2..4] be [///a///; ///b///; ///c///]
-- numbers は [0, 1, "a", "b", "c", 5, 6] になります

配列から変数に値を取り出します:

const weather be [///Sunny///; ///Rainy///]
const [today; tomorrow] be weather
-- 変数の値を入れ替える
[today; tomorrow] be [tomorrow; today]
a and b -- a && b
a or b -- a || b
not x -- !x

eqis はどちらも型名の前に置くと型チェックとして機能します。

x is string -- typeof x === "string"
x eq string -- typeof x === "string"
x is null -- x === null
x is MyClass -- x instanceof MyClass
x instanceof Y -- x instanceof Y
typeof x -- typeof x