var str;
for(var i = 1; i <= 5; i++) {
switch(i) {
case 1:
str = "(" + i + ",";
break;
case 5:
str += i + ")";
break;
default:
str += i + ",";
}
}
alert(str); //(1,2,3,4,5)
i が1のとき case 1: 以下、5のとき case 2: 以下、
それ以外のとき default: 以下を実行します。実は分岐を判定するラベルは整数だけでなく文字列でもなんでも使えます。
var aryjweek = ["日", "月", "火", "水", "木", "金", "土"];
var jweek = aryjweek[(new Date()).getDay()];
var name = "さくら";
switch(name) {
case "さくら":
alert("今日は" + jweek + "曜日だよ");
break;
case "ともよ":
alert("今日は" + jweek + "曜日ですわ");
break;
default:
alert("今日は" + jweek + "曜日やでー");
}
var x = 0; try { alert(x.x.x); } catch(e) { alert(e.number & 0xffff); //5007 alert(e.description); //'x.x'はオブジェクトではありません。 }本来は alert(x.x.x); のところで 『'x.x'はオブジェクトではありません。』 といったエラーメッセージが出てそこでプログラムが止まってしまいますが、 try 〜 catch を使うと try {…} の中でエラーが出た場合、 catch に飛びます。 エラーが出なかった場合は catch 以下は無視されます。
e = new Error(number, description);
var x = 0;
var y;
if(x == 0)
throw new Error(0, "division by zero");
y = 1 / x;
alert(y);
throw ステートメントでプログラムが止まります。これをさきほどと同じように捕まえることができます。
var x = 0;
var y;
try {
if(x == 0)
throw new Error(0, "division by zero");
y = 1 / x;
alert(y);
}
catch(e) {
alert(e.description);
}