2010-08-16 31 views
13

Tôi quen với các câu lệnh có điều kiện trong đó (x < y) hoặc (x == y). Nhưng trong trường hợp không có toán tử, câu lệnh if sẽ kiểm tra chính xác điều gì? tức là trong ví dụ bên dưới nếu (window.XMLHttpRequest) ... điều kiện là gì?JavaScript Nếu điều kiện câu lệnh không có toán tử? Nó làm gì?

Cảm ơn.

if (window.XMLHttpRequest) 
{// code for IE7+, Firefox, Chrome, Opera, Safari 
xmlhttp=new XMLHttpRequest(); 
} 

Trả lời

0

Khi tôi hiểu, nó sẽ cố chuyển đổi biến (bên trong nếu câu lệnh) thành boolean và hơn kiểm tra thông thường cho đúng hoặc sai. Trong trường hợp cụ thể này, nó sẽ kiểm tra, nếu phần tử XMLHttpRequest của cửa sổ tồn tại. Nếu không có XMLHttpRequest - nó sẽ là NULL, và sau đó NULL sẽ được chuyển thành false. P.S. Tôi khuyên bạn nên tìm một số tài liệu tham khảo javascript tốt.

10

Chừng nào biểu thức bên trong dấu ngoặc đơn trả về một cái gì đó khác hơn false, null, 0, "" hoặc undefined ... khối trong báo cáo if sẽ được thực hiện :-)

Trong thực tế tất cả các sau đây sẽ làm việc:

<script> 
    if (3) { 
    alert('3'); 
    } 
    if ({}) { 
    alert('{}'); 
    } 
    if(window) { 
    alert('window!'); 
    } 
    if(true) { 
    alert('true!'); 
    } 
    if('hell yeah') { 
    alert('hell yeah!'); 
    } 

</script> 
+0

Xem tại đây để biết thông số: http://www.ecma-international.org/ecma-262/6.0/index.html#sec-toboolean – phi

1

kiểm tra này liệu có tồn tại một tài sản trên window gọi XMLHttpRequest mà "trù thiness "là sự thật. Javascript diễn giải một loạt các giá trị là true: true, bất kỳ giá trị số không 0, bất kỳ tham chiếu đối tượng không null nào, hoặc (tôi nghĩ) bất kỳ chuỗi không trống nào.

Trong trường hợp này, mã đang kiểm tra xem trình duyệt có hỗ trợ thuộc tính XMLHttpRequest không, đó là hàm khởi tạo cho một đối tượng gửi các yêu cầu không đồng bộ đến máy chủ trong các trình duyệt nói trên. Nếu trình duyệt định nghĩa hàm này, câu lệnh if sẽ đánh giá là true.

0

bằng một số ngôn ngữ, vị ngữ thực sự phải trả lại giá trị boolean. Trong javascript, đây không phải là trường hợp.

Một số trường hợp như 0 hay sai (có thể có những người khác) là sai, còn lại là đúng

3

Đó là chính xác giống như làm

if (window.XMLHttpRequest != false) { 
    xmlhttp=new XMLHttpRequest(); 
} 

Bạn có thể thay false với bất kỳ giá trị falsy khác (0, null, "") và nó sẽ hoạt động tương tự vì loại cưỡng chế.

Tuy nhiên, đó là không cần thiết, chỉ cần nghĩ về nó như (giả)

if (window.XmlHttpRequest exists) { 
    use window.XmlHttpRequuest 
} 
0

này kiểm tra xem có tồn tại một tài sản trên cửa sổ có tên XMLHttpRequest.

Nếu có, nó sẽ thực thi mã trong ngoặc vuông bên dưới.

Nếu không, nó sẽ trả về false và bỏ qua khối mã.

Các vấn đề liên quan