Đôi khi trong JavaScript, bạn có thể cân nhắc sử dụng một switch
tuyên bố thay vì một if else
bản tường trình.
switch
các câu lệnh có thể có cú pháp rõ ràng hơn phức tạp if else
các câu lệnh.
Hãy xem ví dụ bên dưới – thay vì sử dụng từ này if else
tuyên bố, bạn có thể chọn đi với một dễ dàng hơn để đọc switch
bản tường trình.
const pet = "dog";
if (pet === "lizard") {
console.log("I own a lizard");
} else if (pet === "dog") {
console.log("I own a dog");
} else if (pet === "cat") {
console.log("I own a cat");
} else if (pet === "snake") {
console.log("I own a snake");
} else if (pet === "parrot") {
console.log("I own a parrot");
} else {
console.log("I don't own a pet");
}
const pet = "dog";
switch (pet) {
case "lizard":
console.log("I own a lizard");
break;
case "dog":
console.log("I own a dog");
break;
case "cat":
console.log("I own a cat");
break;
case "snake":
console.log("I own a snake");
break;
case "parrot":
console.log("I own a parrot");
break;
default:
console.log("I don't own a pet");
break;
}
Trong bài viết này, tôi sẽ giải thích câu lệnh switch là gì và cách chúng hoạt động. Tôi cũng sẽ giúp bạn tìm hiểu xem chúng có phải là một lựa chọn tốt để sử dụng trong mã của bạn hay không.
Tuyên bố chuyển đổi là gì?
Trong lập trình, một switch
câu lệnh là một câu lệnh luồng điều khiển kiểm tra giá trị của một expression
chống lại nhiều trường hợp.
Đây là cú pháp cơ bản cho một switch
bản tường trình:
switch (expression) {
case 1:
//this code will execute if the case matches the expression
break;
case 2:
//this code will execute if the case matches the expression
break;
case 3:
//this code will execute if the case matches the expression
break;
default:
//this code will execute if none of the cases match the expression
break;
}
Máy tính sẽ đi qua switch
tuyên bố và kiểm tra sự bình đẳng nghiêm ngặt ===
giưa case
và expression
. Nếu một trong các trường hợp phù hợp với expression
thì mã bên trong đó case
mệnh đề sẽ thực thi.
switch (expression) {
case 1:
//this code will execute if the case matches the expression
break;
case 2:
//this code will execute if the case matches the expression
break;
}
Nếu không có trường hợp nào phù hợp với biểu thức, thì default
mệnh đề sẽ được thực hiện.
default:
//this code will execute if none of the cases match the expression
break;
Nếu nhiều trường hợp phù hợp với switch
tuyên bố, sau đó là đầu tiên case
phù hợp với expression
sẽ được sử dụng.
break
tuyên bố sẽ thoát ra khỏi switch
khi mà case
được khớp. Nếu break
không có câu lệnh nào, thì máy tính sẽ tiếp tục thông qua switch
tuyên bố ngay cả khi một trận đấu được tìm thấy.
Nếu return
tuyên bố có mặt trong switch
sau đó bạn không cần một break
bản tường trình.
Ví dụ về câu lệnh Switch trong JavaScript
Trong ví dụ này, chúng ta đang so sánh "oboe"
đến các trường hợp. "oboe"
sẽ phù hợp với thứ ba case
và sẽ in ra bàn điều khiển “I play the oboe”.
switch ("oboe") {
case "trumpet":
console.log("I play the trumpet");
break;
case "flute":
console.log("I play the flute");
break;
case "oboe":
console.log("I play the oboe");
break;
default:
console.log("I don't play an instrument. Sorry");
break;
}
Nếu tôi thay đổi biểu thức thành "no instrument"
sau đó default
mệnh đề sẽ thực thi và thông báo được in ra bảng điều khiển sẽ là “Tôi không chơi nhạc cụ. Xin lỗi”.
switch ("no instrument") {
case "trumpet":
console.log("I play the trumpet");
break;
case "flute":
console.log("I play the flute");
break;
case "oboe":
console.log("I play the oboe");
break;
default:
console.log("I don't play an instrument. Sorry");
break;
}
Thiếu tuyên bố nghỉ giải lao
Trong ví dụ này, trận đấu sẽ là case
2. Nhưng không có break
tuyên bố, máy tính sẽ tiếp tục vào case
3 và default
khoản.
Bạn sẽ thấy ba console.log
tuyên bố vì một break
tuyên bố không được bao gồm.
switch (2) {
case 1:
console.log("Number 1 was chosen");
case 2:
console.log("Number 2 was chosen");
case 3:
console.log("Number 3 was chosen");
default:
console.log("No number was chosen");
}

Đặt Mệnh đề Mặc định ở đâu
Quy ước tiêu chuẩn là đặt default
như mệnh đề cuối cùng. Nhưng bạn cũng có thể đặt nó trước các trường hợp khác.
const food = "nuts";
switch (food) {
case "cake":
console.log("I like cake");
break;
case "pizza":
console.log("I like pizza");
break;
default:
console.log("I like all foods");
break;
case "ice cream":
console.log("I like ice cream");
break;
}

Máy tính vẫn sẽ xem xét từng trường hợp và tìm kết quả khớp. Kể từ khi biến food
không khớp với bất kỳ trường hợp nào, thì default
trường hợp sẽ được thực hiện.
Nhiều trường hợp cho một hoạt động
Có thể đôi khi bạn có một thao tác giống nhau cho nhiều trường hợp.
Thay vì viết ra giống nhau console.log
đối với mỗi trường hợp, chúng ta có thể bỏ qua break
báo cáo và đặt một hoạt động số ít sau nhóm các trường hợp.
Thông báo, “Đất nước này ở châu Âu.” sẽ in ra bàn điều khiển nếu country
phù hợp với bất kỳ trường hợp của "France"
, "Spain"
, "Ireland"
hoặc "Poland"
.
const country = "Ireland";
switch (country) {
case "France":
case "Spain":
case "Ireland":
case "Poland":
console.log("This country is in Europe.");
break;
case "United States":
default:
console.log("This country is not in Europe.");
}
Chặn phạm vi và câu lệnh chuyển đổi
Ví dụ này sẽ tạo ra một thông báo lỗi, bởi vì message
biến đã được khai báo và bạn không thể có cùng tên biến trong cùng phạm vi khối.
const errand = "Going Shopping";
switch (errand) {
case "Going to the Dentist":
let message = "I hate going to the dentist";
console.log(message);
break;
case "Going Shopping":
let message = "I love to shop";
console.log(message);
break;
default:
console.log("No errands");
break;
}

Để loại bỏ thông báo lỗi đó, các trường hợp cần được bao bọc trong một bộ dấu ngoặc nhọn.
const errand = "Going Shopping";
switch (errand) {
case "Going to the Dentist": {
let message = "I hate going to the dentist";
console.log(message);
break;
}
case "Going Shopping": {
let message = "I love to shop";
console.log(message);
break;
}
default: {
console.log("No errand");
break;
}
}

Phần kết luận
Sử dụng một switch
tuyên bố có thể là một thay thế cho một if else
bản tường trình. Một switch
câu lệnh so sánh giá trị của một expression
đến nhiều trường hợp.
switch
báo cáo sẽ kiểm tra sự bình đẳng nghiêm ngặt. Trong ví dụ này, vì "2"!== 2
các default
mệnh đề sẽ thực thi.
switch (2) {
case "2":
console.log("Number 2 in a string");
break;
case "3":
console.log("Number 3 in a string");
break;
default:
console.log("Number not present");
break;
}
break
tuyên bố sẽ thoát ra khỏi switch
khi mà case
được khớp. Nếu break
không có câu lệnh nào, thì máy tính sẽ tiếp tục thông qua switch
tuyên bố ngay cả khi một trận đấu được tìm thấy.
Tôi hy vọng bạn thích bài viết này trên switch
các câu lệnh.