Tôi có một biến có thể là boolean false
hoặc một số nguyên (bao gồm 0). Tôi muốn đặt nó trong một tuyên bố chuyển đổi như:Có an toàn để giả định so sánh chặt chẽ trong tuyên bố chuyển đổi JavaScript không?
switch(my_var){
case 0:
// Do something
break;
case 1:
// Do something else
break;
case false:
// Some other code
}
Trong thử nghiệm của tôi trong Google Chrome, có vẻ như hoạt động hoàn hảo, nhưng tôi hơi lo lắng khi sử dụng vì tôi sợ rằng trong một số trình duyệt , nếu my_var
là false
, nó có thể thực hiện trường hợp đầu tiên kể từ 0 == false
.
Tôi chỉ tự hỏi nếu có bất kỳ điều gì chính thức trong JavaScript cho biết câu lệnh chuyển đổi sẽ sử dụng so sánh nghiêm ngặt như vậy 0 !== false
, nhưng tôi không thể tìm thấy bất kỳ điều gì. các công cụ JavaScript khác nhau. Có ai biết nếu so sánh được thực hiện bởi một tuyên bố chuyển đổi được đảm bảo để được nghiêm ngặt?
Đó là [tiệc tùng như thế kể từ năm 1999] (http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%203rd%20edition, % 20December% 201999.pdf) (trang 68, s. 12.11, CaseBlock # 3) – Walf