Tuyên bố chuyển đổi JavaScript
Câu lệnh switch
được sử dụng để thực hiện các hành động khác nhau dựa trên các điều kiện khác nhau.
Câu lệnh chuyển đổi JavaScript
Sử dụng câu lệnh switch
để chọn một trong nhiều khối mã sẽ được thực thi.
Cú pháp
switch( expression ) {
case x :
// code block
break;
case y :
// code block
break;
default:
// code block
}
Đây là cách nó hoạt động:
- Biểu thức switch được đánh giá một lần.
- Giá trị của biểu thức được so sánh với giá trị của từng trường hợp.
- Nếu có sự trùng khớp, khối mã liên quan sẽ được thực thi.
- Nếu không khớp, khối mã mặc định sẽ được thực thi.
Ví dụ
Phương thức getDay()
trả về ngày trong tuần dưới dạng số từ 0 đến 6.
(Chủ Nhật=0, Thứ Hai=1, Thứ Ba=2 ..)
Ví dụ này sử dụng số ngày trong tuần để tính tên ngày trong tuần:
switch (new Date().getDay()) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
case 3:
day = "Wednesday";
break;
case 4:
day = "Thursday";
break;
case 5:
day = "Friday";
break;
case 6:
day = "Saturday";
}
Kết quả của ngày sẽ là:
Từ khóa nghỉ giải lao
Khi JavaScript gặp từ khóa break
, nó sẽ thoát ra khỏi khối switch.
Điều này sẽ dừng việc thực thi bên trong khối switch.
Không cần thiết phải phá vỡ trường hợp cuối cùng trong khối chuyển đổi. Khối vẫn bị phá vỡ (kết thúc) ở đó.
Lưu ý: Nếu bạn bỏ qua câu lệnh break, trường hợp tiếp theo sẽ được thực thi ngay cả khi việc đánh giá không khớp với trường hợp đó.
Từ khóa mặc định
Từ khóa default
chỉ định mã sẽ chạy nếu không khớp kiểu chữ nào:
Ví dụ
Phương thức getDay()
trả về ngày trong tuần dưới dạng số từ 0 đến 6.
Nếu hôm nay không phải thứ bảy (6) cũng không phải chủ nhật (0), hãy viết tin nhắn mặc định:
switch (new Date().getDay()) {
case 6:
text = "Today is Saturday";
break;
case 0:
text = "Today is Sunday";
break;
default:
text = "Looking forward to the Weekend";
}
Kết quả của văn bản sẽ là:
Trường hợp default
phải là trường hợp cuối cùng trong khối chuyển đổi:
Ví dụ
switch (new Date().getDay()) {
default:
text = "Looking forward to the Weekend";
break;
case 6:
text = "Today is Saturday";
break;
case 0:
text = "Today is Sunday";
}
Hãy tự mình thử » Nếu default
không phải là trường hợp cuối cùng trong khối chuyển đổi, hãy nhớ kết thúc trường hợp mặc định bằng dấu ngắt.
Khối mã chung
Đôi khi bạn sẽ muốn các trường hợp chuyển đổi khác nhau sử dụng cùng một mã.
Trong trường hợp ví dụ này, 4 và 5 chia sẻ cùng một khối mã và 0 và 6 chia sẻ một khối mã khác:
Ví dụ
switch (new Date().getDay()) {
case 4:
case 5:
text = "Soon it is Weekend";
break;
case 0:
case 6:
text = "It is Weekend";
break;
default:
text = "Looking forward to the Weekend";
}
Hãy tự mình thử »Chi tiết chuyển đổi
Nếu nhiều trường hợp khớp với một giá trị trường hợp thì trường hợp đầu tiên sẽ được chọn.
Nếu không tìm thấy trường hợp nào phù hợp, chương trình sẽ tiếp tục sử dụng nhãn mặc định .
Nếu không tìm thấy nhãn mặc định, chương trình sẽ tiếp tục thực hiện (các) câu lệnh sau switch .
So sánh nghiêm ngặt
Các trường hợp chuyển đổi sử dụng so sánh nghiêm ngặt (===).
Các giá trị phải cùng loại để khớp.
So sánh chặt chẽ chỉ có thể đúng nếu các toán hạng cùng loại.
Trong ví dụ này sẽ không có kết quả nào phù hợp với x:
Ví dụ
let x = "0";
switch (x) {
case 0:
text = "Off";
break;
case 1:
text = "On";
break;
default:
text = "No value found";
}
Hãy tự mình thử »