2012-04-13 20 views
18

Có cách nào tốt hơn để thực hiện việc này không?Kiểm tra false

if(borrar() !== false) 
{ 
    alert('tatatata bum bum bum prapra'); 
} 
return false; 

Trả lời

18

Nếu bạn muốn kiểm tra sai và cảnh báo nếu không, thì không có.

Nếu bạn sử dụng if(val), thì bất kỳ thứ gì đánh giá thành 'trung thực', như chuỗi không trống, cũng sẽ chuyển. Vì vậy, nó phụ thuộc vào tiêu chí nghiêm ngặt của bạn. Sử dụng ===!== thường được coi là thực hành tốt, để tránh vô tình khớp các điều kiện trung thực hoặc giả thông qua các thử nghiệm boolean ngầm định của javascript.

0

Như thế này?

if(borrar()) 
{ 
    //do something 
} 

Nếu borrar() trả về true thì hãy làm điều gì đó (nếu không sai).

+2

Đây là một thử nghiệm ít nghiêm ngặt hơn so với bản gốc, và do đó hành vi sẽ không hoàn toàn giống nhau. –

+1

Tôi đoán câu hỏi là một cách tốt hơn và tôi đã lấy nó như một cách đơn giản hơn, nhưng bạn chính xác điều này là ít nghiêm ngặt hơn. Nó phụ thuộc vào hàm borrar(). Cảm ơn, tôi chắc chắn rằng tôi sẽ học được nhiều hơn từ việc trả lời các câu hỏi và được sửa chữa hơn là yêu cầu của riêng tôi. :) –

5

Nếu bạn muốn một kiểm tra rõ ràng chống lại false (và không được xác định, null và những người khác mà tôi giả định như bạn đang sử dụng! == thay vì! =) Thì có bạn phải sử dụng điều đó. điều này cũng giống với dấu chân hơi nhỏ hơn

if(borrar() !== !1) 
+5

Đồng ý, ngoại trừ '! 1'. Tôi sẽ không sử dụng nó, vì nó ít tiết hơn 'sai', và cũng không phổ biến, do đó, ít dễ đọc hơn. –

+1

đúng, nó không thực sự là một cách tốt hơn, tôi đoán nó có thể được coi là một cách tối ưu hơn cho dấu chân nhưng thông thường máy nén sẽ chăm sóc đó vì vậy nó không có giá trị sử dụng chống lại sai. – GillesC

3

Kiểm tra xem có điều gì không sai không. Vì vậy, đó là sự thật, chỉ khi bạn đang làm một cái gì đó là vật lý lượng tử.

if(!(borrar() === false)) 

hoặc

if(borrar() === true) 
3

Bạn có thể sử dụng một cái gì đó đơn giản hơn :)

if(!var){ 
    console.log('var is false'); 
} 
+2

nếu var là null hoặc không xác định! Var là true và không phải là điểm. – gsubiran

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