Mã này trong JS cung cấp cho tôi một cửa sổ bật lên nói rằng "tôi nghĩ null là một con số", mà tôi thấy hơi đáng lo ngại. Tôi đang thiếu gì?
if (isNaN(null)) {
alert("null is not a number");
} else {
alert("i think null is a number");
}
Tôi đang sử dụng Firefox 3. Đó có phải là lỗi trình duyệt không?
Các xét nghiệm khác:
console.log(null == NaN); // false
console.log(isNaN("text")); // true
console.log(NaN == "text"); // false
Vì vậy, vấn đề dường như không phải là một so sánh chính xác với NaN?
Chỉnh sửa: Bây giờ câu hỏi đã được trả lời, tôi đã dọn sạch bài đăng của mình để có phiên bản tốt hơn cho kho lưu trữ. Tuy nhiên, điều này làm cho một số ý kiến và thậm chí một số câu trả lời hơi khó hiểu. Đừng đổ lỗi cho tác giả của họ. Trong số những điều tôi đã thay đổi là:
- Xóa một ghi chú nói rằng tôi đã làm hỏng tiêu đề ở nơi đầu tiên bằng cách hoàn nguyên ý nghĩa của nó
- Các câu trả lời trước đó cho thấy rằng tôi không nói rõ đủ lý do tại sao tôi nghĩ hành vi đó là lạ, vì vậy tôi đã thêm các ví dụ kiểm tra chuỗi và thực hiện so sánh thủ công.