Tôi có một đoạn mã để kiểm tra sự tồn tại của một biến, sử dụng câu lệnh if như ví dụ bên dưới. Tôi cần phải làm một điều nếu var được thiết lập, một điều khác nhau nếu nó không. Trong một trường hợp thử nghiệm nhất định, var cần phải được thiết lập là 0, nhưng điều đó là như nhau là có một var unset trong JS, rõ ràng:JS: kiểm tra sự tồn tại của một var bằng 0
var toMatch;
toMatch = 0;
if (!toMatch) {
document.write("no");
} else {
document.write(toMatch);
}
// html is "no"
Vì vậy, vấn đề của tôi là, làm thế nào tôi kiểm tra cho một var nếu giá trị của nó là hợp pháp bằng không. Tôi nên chỉ ra rằng, trong các chức năng của tôi giá trị có thể được thông qua là 0-40 +.
Trong quá khứ tôi đã sử dụng một công việc xung quanh như thiết lập giá trị ban đầu cho một số đủ cao mà nó không có khả năng được chuyển cho hàm nhưng điều đó dường như là hackey với tôi. Có cách nào tốt hơn để làm điều đó không?
Lưu ý rằng 'undefined' không phải là một từ khóa và về mặt lý thuyết có thể ghi đè. Đề xuất sử dụng 'if (typeof (toMatch)! ==" undefined ")' hoặc đóng mã trên một hàm ẩn danh với tham số bổ sung cho 'undefined'. –
Bạn cũng có thể muốn đề cập rằng để kiểm tra sự tồn tại (không nhất thiết là một giá trị cụ thể) bạn có thể làm: 'if (typeof toMatch! == 'undefined') {}; ' –
Bạn cũng có thể sử dụng' (void 0) ' thay vì 'undefined' nếu bạn thực sự hoang tưởng :) –