スタートページ>
Javascript>
CoffeeScript
CoffeeScriptの概要←
(1)変数の指定←
文法の基本(2)制御命令>→
(3)関数>→
(4)クラス
if 分岐 ? 存在演算子 swich 分岐 for in リスト(通常配列)を走査 for of 連想配列(Object)を走査 while/until
JavaScript if (変数 演算子 値) { 処理A; } else { 処理B; } |
CoffeeScript if 変数 演算子 値 処理A; # 字下げ else 処理B; # 字下げ |
CoffeeScript if a >= 0 alert "#{a}は正数" else alert "#{a}は負数" if b > 0 and c > 0 alert "二つとも正数" if 10 < d < 30 alert "OK" |
JavaScript if (a >= 0) { alert(`${a}は正数`); } else { alert(`${a}は負数`); } if (b > 0 && c > 0) { alert("二つとも正数"); } if ((10 < d && d < 30)) { alert("OK"); } |
JavaScript では、「条件 ? 真の処理 : 偽の処理」という簡素記述法がありますが、CoffeeSceipt では「条件 ? 偽の処理」が使えるだけです。
変数が undefined あるいは null のときの処理に用いられます。
「確定していればそのままの値、未確定ならが0とする」ときの記法です。x は確定していますが、y は定義されていません。
CoffeeScript x = 10 a = x ? 0 alert a x ? 0 alert x # y は定義されていない b = y ? 0 alert b y ? 0 # この記法は不適切 alert y |
JavaScript var a, b, x; // y は宣言されていない x = 10; a = x != null ? x : 0; alert(a); // a=10 if (x != null) { x; } else { 0; }; alert(x); // x=10 b = typeof y !== "undefined" && y !== null ? y : 0; alert(b); // b=0 if (typeof y !== "undefined" && y !== null) { y; } else { 0; }; alert(y); // ★エラーになる |
上の「y ? 0」のエラーを回避するために「y = y ? 0」としました。同じことですが y が左辺に出現するので、var y が加えられ、y は「定義はされているが値は未確定」になりました。これにより、期待通りに y=0 になりました。
CoffeeScript b = y ? 0 alert b y = y ? 0 alert y |
JavaScript var b, y; // y は宣言されているが値は未確定 b = typeof y !== "undefined" && y !== null ? y : 0; alert(b); // b=0 y = y != null ? y : 0; alert(y); // ★y=0 |
CoffeeScript 信号 = "赤" switch 信号 when "赤" alert "停止" when "青" alert "進行" else alert "注意" |
JavaScript var 信号; 信号 = "赤"; switch (信号) { case "赤": alert("停止"); break; case "青": alert("進行"); break; default: alert("注意"); } |
CoffeeScript for i in [0..3] alert i for j in [0...8] by 2 alert j リストA = ["aaa", "bbb", "ccc"] for 要素 in リストA alert 要素 |
JavaScript var i, j, k, l, len, m, リストA, 要素; for (i = k = 0; k < 3; i = ++k) { alert(i); // 0, 1, 2 } for (j = l = 0; l <= 8; j = l += 2) { alert(j); // 0, 2, 4, 6, 8 } リストA = ["aaa", "bbb", "ccc"]; for (m = 0, len = リストA.length; m < len; m++) { 要素 = リストA[m]; alert(要素); // aaa. bbb. ccc } |
CoffeeScript 学生 = 氏名: "阿部" 学部: "文学部" 年齢: 20 for key, value of 学生 キー = key 値 = value alert "#{キー}: #{値}" |
JavaScript var key, value, キー, 値, 学生; 学生 = { 氏名: "阿部", 学部: "文学部", 年齢: 20 }; for (key in 学生) { value = 学生[key]; キー = key; 値 = value; alert(`${キー}: ${値}`); } // 氏名: "阿部" // 学部: "文学部" // 年齢: 20 |
CoffeeScript i = 5 while i < 8 alert i i++ j = 5 until j < 3 alert j j-- |
JavaScript var i, j; i = 5; while (i < 8) { alert(i); i++; } j = 5; while (!(j < 3)) { alert(j); j--; } |