switch (fruit) { case "banana": // ... break; case "apple": // ... break; default: // ... }
上面代碼根據變量fruit的值,選擇執行相應的case。如果所有case都不符合,則執行最后的default部分。需要注意的是,每個case代碼塊內部的break語句不能少,否則會接下去執行下一個case代碼塊,而不是跳出switch結構。
需要注意的是,switch語句后面的表達式與case語句后面的表示式,在比較運行結果時,采用的是嚴格相等運算符(===),而不是相等運算符(==),這意味着比較時不會發生類型轉換。
switch結構不利於代碼重用,往往可以用對象形式重寫。
var o = { banana: function (){ return }, apple: function (){ return }, default: function (){ return } }; if (o[fruit]){ o[fruit](); } else { o['default'](); }
var lwFruit = { "Apple": function () { alert("我是小蘋果"); }, "Banana": function () { alert("我是邪惡的香蕉!嘿嘿!"); }, "Default": function () { alert("未知的水果啦!"); } }; var varFruit = "333"; if (lwFruit[varFruit]) { lwFruit[varFruit](); } else { lwFruit.Default(); }