Ai đó có thể giải thích cho tôi tại sao điều này trả về một chuỗi rỗng ("") thay vì một boolean (false)?Chuỗi trả về Javascript về những gì nên là một bài kiểm tra boolean viết tắt
var x = "";
alert(x && x.length > 0);
... Trong khi làm việc này như mong đợi, trở thành sự thật:
var y = "abc";
alert(y && y.length > 0);
tôi về cơ bản chỉ cố gắng để làm một kiểm tra viết tắt đơn giản để xem nếu một giá trị tồn tại trong một biến (đảm bảo nó không phải chuỗi undefined, null hoặc empty).
Tôi biết mình có thể thực hiện từng bài kiểm tra riêng lẻ (x == null, typeof x == 'undefined', x == '') - Tôi chỉ cố gắng hiểu tại sao Javascript trả về chuỗi trên những gì có vẻ là một thử nghiệm boolean.
lưu ý rằng bạn có thể buộc trở về một 'boolean' bởi sử dụng '!! (x) ' – ajax333221
bạn sẽ có thể rút ngắn với một cái gì đó giống như' alert (typeof x! = Undefined && x.length> 0) 'bởi vì cả hai bool trở lại, altho, nếu x bao giờ là undefined, nó có thể ném lỗi (hầu hết) bởi vì đối số thứ nhất có thể bị lỗi, sẽ tốt hơn nếu phân tách chúng trong mini func hoặc nội tuyến – SpYk3HH