Trước hết tôi muốn đề cập rằng tôi biết làm thế nào isNaN()
và Number.isNaN()
làm việc. Tôi đang đọc Hướng dẫn xác định của David Flanagan và ông đưa ra một ví dụ về cách kiểm tra xem giá trị có phải là NaN
:
x !== x
Điều này sẽ dẫn đến kết quả true
nếu và chỉ khi x
có NaN
.
Nhưng bây giờ tôi có một câu hỏi: tại sao anh ta sử dụng so sánh nghiêm ngặt? Bởi vì dường như
x != x
cư xử theo cùng một cách. Là nó an toàn để sử dụng cả hai phiên bản, hay tôi thiếu một số giá trị (s) trong JavaScript rằng sẽ trở lại true
cho x !== x
và false
cho x != x
?
NaN
không phải là một loại duy nhất, nó là một con số. Đó là một giá trị duy nhất không bằng chính nó.
===
với NaN để đưa ra quan điểm rằng NaN không bằng chính nó. Anh ấy không "sai", anh ấy làm nó như một bài tập giảng dạy, chứng tỏ rằng nó không hoạt động.
!==
kiểm tra hơn!=
séc. Theo như tôi biết thì không có giá trị nào khácx != x
. Nhưng có hai nhóm riêng biệt của các nhà phát triển JavaScript: những người thích!=
và những người thích!==
, có thể là cho tốc độ, rõ ràng, biểu cảm, vv