Helpex - Trao đổi & giúp đỡ Đăng nhập
82

Trong JavaScript, bạn có thể khai báo một biến và nếu có undefined, bạn có thể kiểm tra variable == undefined; Tôi biết điều đó, nhưng làm thế nào bạn có thể so sánh một giá trị mà bạn chưa biết nếu nó có trong bộ nhớ?

Ví dụ, tôi có một lớp được tạo khi người dùng nhấp vào nút. Trước đó, lớp này không được xác định - nó không tồn tại ở bất cứ đâu; Làm thế nào tôi có thể so sánh nó?

Có cách nào mà không sử dụng try- catch?

82 hữu ích 0 bình luận 103k xem chia sẻ
174

Cách tốt nhất là kiểm tra loại , bởi vì undefined/ null/ falselà một điều khó khăn trong JS. Vì thế:

if(typeof obj !== "undefined") {
    // obj is a valid variable, do something here.
}

Lưu ý rằng typeofluôn trả về một chuỗi và không tạo ra lỗi nếu biến đó hoàn toàn không tồn tại.

174 hữu ích 5 bình luận chia sẻ
47
if (obj === undefined)
{
    // Create obj
}

Nếu bạn đang thực hiện lập trình javascript rộng rãi, bạn nên tập thói quen sử dụng === và! == khi bạn muốn thực hiện kiểm tra loại cụ thể.

Ngoài ra, nếu bạn sắp thực hiện một số lượng javascript khá lớn, tôi khuyên bạn nên chạy mã thông qua JSLint http://www.jslint.com lúc đầu có vẻ hơi hà khắc, nhưng hầu hết những điều mà JSLint cảnh báo bạn cuối cùng sẽ đến quay lại cắn bạn.

47 hữu ích 5 bình luận chia sẻ
2
if (document.getElementById('theElement')) // do whatever after this

Đối với những thứ không xác định gây ra lỗi, hãy kiểm tra tên thuộc tính của đối tượng cha thay vì chỉ tên biến - vì vậy thay vì:

if (blah) ...

làm:

if (window.blah) ...
2 hữu ích 0 bình luận chia sẻ
1

!undefined là đúng trong javascript, vì vậy nếu bạn muốn biết liệu biến hoặc đối tượng của bạn không được xác định và muốn thực hiện hành động, bạn có thể làm một cái gì đó như thế này:

if(<object or variable>) {
     //take actions if object is not undefined
} else {
     //take actions if object is undefined
}
1 hữu ích 2 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ javascript undefined , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading