JavaScript Switch İfadesi

switch 语句用于基于不同条件执行不同动作。

JavaScript Switch İfadesi

请使用 switch 语句来选择多个需被执行的代码块之一。

yapı语法

switch(表达式) {
     case n:
        代码块
        kes:
     case n:
        代码块
        kes:
     varsayılan:
        默认代码块
} 

代码解释:

  • 计算一次 switch 表达式
  • 把表达式的值与每个 case 的值进行对比
  • 如果存在匹配,则执行关联代码

Örnek

getDay() 方法返回 0 至 6 之间的周名数字(weekday number)。

(Sunday=0, Monday=1, Tuesday=2 ..)

本例使用周名数字来计算周的名称:

switch (new Date().getDay()) {
    davranış 0:
        day = "星期天";
        kes:
    davranış 1:
        day = "星期一";
         kes:
    case 2:
        day = "星期二";
         kes:
    case 3:
        day = "星期三";
         kes:
    case 4:
        day = "星期四";
         kes:
    case 5:
        day = "星期五";
         kes:
    case 6:
        day = "星期六";
} 

结果将是:


kişisel olarak deneyin

break 关键词

如果 JavaScript 遇到 break 关键词,它会跳出 switch kod bloğu.

这将停止代码块中更多代码的执行以及 case 测试。

匹配找到并完成任务后,随机中断执行(break)。无需更多测试。

break Bu, switch kod bloğundaki diğer kodların çalışmasını "yoksayarak" büyük ölçüde çalışma zamanını tasarruf ettirebilir.

switch kod bloğundaki son case'yi kesmeyin. Kod bloğu burada doğal olarak sona erer.

default 关键词

default 关键词规定不存在 case 匹配时所运行的代码:

Örnek

getDay() 方法返回 0 至 6 的数字周名。

如果今日既不是周六(6)也不是周日(0),则输出一段默认消息:

switch (new Date().getDay()) {
    case 6:
        text = "今天是周六";
        kes: 
    davranış 0:
        text = "今天是周日";
        kes: 
    varsayılan: 
        text = "期待周末~";
} 

text'in sonucu:


kişisel olarak deneyin

defaultcase'nin switch kod bloğundaki son case olmaması gerekmez:

Örnek

switch (new Date().getDay()) {
    varsayılan: 
        text = "期待周末!";
         kes:
    case 6:
        text = "今天是周六";
        kes: 
    davranış 0:
        text = "今天是周日";
} 

kişisel olarak deneyin

eğer default switch kod bloğundaki son case değilse, lütfen default case'yi break ile sonlandırın.

Sıkça kullanılan kod bloğu

Bazen aynı kodu kullanmak için farklı case'ler ihtiyacınız olabilir.

在本例中,case 4 ve 5 aynı kod bloğunu paylaşırken 0 ve 6 başka bir kod bloğu paylaşır:

Örnek

switch (new Date().getDay()) {
    case 4:
    case 5:
        text = "周末快到了:)";
        kes: 
    davranış 0:
    case 6:
        text = "今天是周末~";
         kes:
    varsayılan: 
        text = "期待周末!";
} 

kişisel olarak deneyin

Switching 的细节

Birden fazla davranışın aynı davranış değerine eşleşmesi durumunda, ilk davranış seçilir.

Eşleşen davranış bulunmadığında, program varsayılan etiket kullanmaya devam eder.

Varsayılan etiket bulunmadığında, program switch'in ardındanki dizesine devam eder.

Ağır karşılaştırma

Switch case, (===)

Değerler, eşleşmek istediğiniz türle aynı olmalıdır.

Ağır karşılaştırma doğru olabilmesi için, operantlar aynı türse tek olabilir.

Bu örnekte, x eşleşmeyecek:

Örnek

var x = "0";
switch (x) {
  davranış 0:
    text = "Kapalı";
    kes:
  davranış 1:
    text = "Açık";
    kes:
  varsayılan:
    text = "Değer bulunamadı";
}

kişisel olarak deneyin

ders dışı kitap

daha fazla bilgi için JavaScript Switch İfadesidaha fazla bilgi için, JavaScript Üst Düzey Eğitimi'ndeki ilgili içerikleri okuyun:

ECMAScript switch Dizesi
switch dizesi if dizesinin kardeşidir. Bu bölümde switch dizesinin kullanımı ve Java'daki switch dizesi ile arasındaki farklar anlatılmaktadır.