Tôi gặp sự cố trong một số JavaScript mà tôi đang viết nơi câu lệnh Chuyển đổi dường như không hoạt động như mong đợi.Tuyên bố chuyển đổi JavaScript
switch (msg.ResultType) {
case 0:
$('#txtConsole').val("Some Val 0");
break;
case 1:
$('#txtConsole').val("Some Val 1");
break;
case 2:
$('#txtConsole').text("Some Val 2");
break;
}
ResultType là giá trị số nguyên 0-2 và tôi có thể thấy trong FireBug. Trong mọi trường hợp, công tắc chuyển điều khiển sang câu lệnh ngắt cuối cùng có nghĩa là tất cả logic được bỏ qua hoàn toàn. Tôi đang thiếu gì?
LUÔN chỉ định tham số thứ hai để phân tích cú pháp! Đó là cơ số, vì vậy bạn sẽ muốn: parseInt (msg.ResultType, 10); Nếu bạn không cung cấp nó, nó sẽ cố gắng đoán các cơ số và những điều khủng khiếp sẽ xảy ra. – rmeador
Vâng, những điều khủng khiếp sẽ chỉ xảy ra nếu bạn vượt qua một cái gì đó như 077, mà sẽ được hiểu là bát phân (nhưng không có 078, ví dụ), hoặc 0x10, nhưng trong trường hợp thứ hai nó khá rõ ràng rằng bạn có cơ sở 16. Dù sao, thêm các radix rõ ràng sẽ không làm tổn thương, vì vậy nó không phải là một ý tưởng tồi. –
Trong trường hợp này thì không cần thiết, mặc dù tôi đã sử dụng nó chỉ để rõ ràng và đầy đủ. Tôi không phải ai đó tin rằng mã terse là mã tốt nhất. Các giá trị sắp tới được xác định trong một liệt kê ở phía máy chủ và do đó sẽ không bao giờ ở một số định dạng không chuẩn. –