スタートページ>
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--;
}
|