Tôi thường thấy mã JavaScript kiểm tra các tham số không xác định, v.v ... theo cách này:
if (typeof input !== "undefined") {
// do stuff
}
Điều này có vẻ lãng phí, vì nó liên quan đến cả tra cứu kiểu và so sánh chuỗi, không đề cập đến tính dài dòng của nó. Nó cần thiết bởi vì undefined
có thể được đổi tên, mặc dù.
Câu hỏi của tôi là:
Làm thế nào mã đó tốt hơn so với phương pháp này:
if (null != input) {
// do stuff
}
Theo tôi biết, bạn không thể xác định lại null
, vì vậy nó sẽ không bị phá vỡ bất ngờ. Và, do sự ép buộc kiểu của !=
toán tử, điều này kiểm tra cả hai undefined
và null
... thường chính xác những gì bạn muốn (ví dụ: đối với các tham số chức năng tùy chọn).
Tuy nhiên, hình thức này dường như không phổ biến và thậm chí nó còn khiến cho JSLint la mắng bạn vì đã sử dụng !=
toán tử độc ác .
Tại sao điều này được coi là phong cách xấu?
if (null != input)
chỉ là "Yoda Nói" với người nói tiếng Anh (Trong số tôi là .... uuammmmm) vì vậy nếu chúng tương đương với cùng một thứ thì đó thực sự chỉ là ngữ nghĩa. IMHO.