Vấn đề fallthrough trong switch
case trong switch của JavaScript không có tác dụng thoát khỏi phân nhánh. Để thoát khỏi phân nhánh, cần có break. Nếu không viết break, xử lý sẽ tiếp tục vào phân nhánh tiếp theo. Đặc tả này được gọi là fallthrough.
tslets = "A";switch (s ) {case "A": // Phân nhánh không có breakconsole .log (1);case "B": // Xử lý tiếp tục vào phân nhánh nàyconsole .log (2);}
tslets = "A";switch (s ) {case "A": // Phân nhánh không có breakconsole .log (1);case "B": // Xử lý tiếp tục vào phân nhánh nàyconsole .log (2);}
Fallthrough thường là nguyên nhân gây bug. Trong TypeScript, bật compiler option noFallthroughCasesInSwitch thành true sẽ cảnh báo về fallthrough. Nên bật option này.
tslets = "A";switch (s ) {case "A":Fallthrough case in switch.7029Fallthrough case in switch.console .log (1);case "B":console .log (2);}
tslets = "A";switch (s ) {case "A":Fallthrough case in switch.7029Fallthrough case in switch.console .log (1);case "B":console .log (2);}
📄️ noFallthroughCasesInSwitch
Cấm fallthrough trong switch statement
Chia sẻ kiến thức
😴case trong switch của JavaScript không có tác dụng thoát khỏi phân nhánh
⏩Nếu không viết break, phân nhánh tiếp theo cũng được thực thi (fallthrough)
🐞Fallthrough dễ gây bug
✅Trong TypeScript, bật noFallthroughCasesInSwitch sẽ phát hiện fallthrough
Từ 『Survival TypeScript』