2011-02-07 18 views

Trả lời

12

Có, it is perfectly valid. Bạn đã thử chưa?

+2

Hãy thử một cái gì đó và làm cho nó hoạt động không nhất thiết có nghĩa là nó hợp lệ. Nó chỉ có thể là thứ rơi qua các vết nứt nhưng không thích hợp. Hàng triệu thứ trong thế giới web không phải là đánh dấu hoặc mã "hợp lệ" nhưng chúng hoạt động theo cách này hay cách khác. –

+0

JavaScript ít là điều ma thuật voodoo, IMO. Các câu lệnh liên quan đến một trường hợp * có thể * là bất kỳ thứ gì - tôi chưa thấy một ví dụ phản đối. – karim79

+0

@ karim79 & Bertrand Marron - Tôi đã thử nó trong một số mã tôi đã làm việc trên trước đó. Nó không hiệu quả, nhưng tôi nghĩ nó có thể là do cái gì khác. Tôi đã thay đổi nó thành tinh khiết nếu ở bất kỳ đâu và cũng thực hiện các thay đổi khác. Nó có thể là những thay đổi khác là những gì làm cho nó bắt đầu làm việc và không phải là thay đổi nếu/else. – Ben

-1

Bạn có thể kết hợp một switch và một if một cách tốt hơn, nếu bạn thực sự phải:

switch (true) { 
    case (foo === 'bar' && raz === 'something'): 
     // execute 
     break; 
    case (foo === 'bar'): 
     // do something else 
     break; 
    default: 
     // yada yada 
} 

Xin lỗi vì đã làm sống lại một bài cũ như vậy, nhưng nó có thể giúp những người đến đây tìm cách để kết hợp hoặc làm tổ switch và tuyên bố if.

+0

Điều này không có ý nghĩa gì cả. Bạn chỉ có thể sử dụng câu lệnh if/else if và xóa trường hợp chuyển đổi xung quanh ... – schlenger

+0

Nó * có * có ý nghĩa. Khi sử dụng 'return' trong mỗi' case', bạn có thể bỏ qua 'break;', và nó có thể là một sự thay thế rất dễ đọc đối với các câu lệnh 'if/else' dài. –

+0

Câu lệnh if else sẽ tự động ngắt nếu một điều kiện được thực hiện ... – schlenger

Các vấn đề liên quan