JS Switch

13/08/2019

Bài sau » « Bài trước

Sử dụng Câu lệnh switch để 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.

switch( value ) { case x: // Code xử lý break; case y: // Code xử lý break; default: // Code xử lý }

Cách hoạt động của switch:

  • Giá trị truyền vào được đánh giá 1 lần.
  • Giá trị này sẽ so sánh với các giá trị của case
  • Nếu bằng nhau, khối code trong case đó sẽ được thực thi.
  • Nếu không bằng nhau, khối code trong default sẽ thực thi.

Ví dụ: Show ra thông báo hôm nay là thứ mấy, sử dụng hàm getDay(), hàm này trả về 1 số từ 0 - 6 (Sunday = 0, Monday = 1,...., Saturday = 6).

switch (new Date().getDay()) { case 0: day = "Chủ nhật"; break; case 1: day = "Thứ hai"; break; case 2: day = "Thứ ba"; break; case 3: day = "Thứ tư"; break; case 4: day = "Thứ năm"; break; case 5: day = "Thứ sáu"; break; case 6: day = "Thứ bảy"; break; } alert('Hôm nay là thứ '+ day);

Từ khóa break

Khi Javascript gặp từ khóa break, nó sẽ thoát khỏi vòng lặp switch.

Chú ý: Nếu bạn viết thiếu từ khóa break ở cuối case, thì khối code trong case tiếp theo sẽ được thực thi cho dù giá trị không bằng nhau.

Từ khóa default

Từ khóa default chỉ định khối code sẽ chạy nếu không có trường hợp nào bằng nhau. Ví dụ:

switch (new Date().getDay()) { case 0: day = "Chủ nhật"; break; case 6: day = "Thứ bảy"; break; default: day = "Chưa tới cuối tuần."; break; } alert(day);

Khối code dùng chung

Đôi khi, bạn muốn các switch case khác nhau nhưng có thể thực thi đoạn code giống nhau. Thì ta có thể viết gộp như ví dụ sau đây:

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"; }

Trong ví dụ trên, thì trường hợp case = 4 hoặc 5 thì sẽ chạy đoạn code trong case 5, trường hợp case = 0 hoặc 6 thì chạy code trong case 6.

Tóm tắt về câu lệnh Switch

- Nếu có nhiều case bằng giá trị, thì case đầu tiên sẽ thực thi.

- Nếu không có case nào bằng giá trị, thì khối lệnh trong default sẽ thực thi.

- Nếu không có khai báo default, thì Javascript tiếp tục thực thi đoạn code sau Switch.

- Switch sử dụng biểu thức === để so sánh. Vì vậy hãy chắc chắn rằng giá trị truyền vào và giá trị trong case giống nhau về kiểu dữ liệu.

Bài sau » « Bài trước
Back to top