{Javascript} Chuyển đổi từ kiểu String sang kiểu boolean

{Javascript} Chuyển đổi từ kiểu String sang kiểu boolean

Tình hình là hôm nay đọc bài này trên blog của một tác giả nước ngoài thấy hay nên mình quyết định dịch và đăng lại. Nguồn bài viết được để ở cuối bài. Mình chỉ dịch những phần mình thấy quan trọng nên nếu bạn nào muốn có thể coi bài gốc nhé.

Chắc hẳn khi đọc tiêu đề bài viết thì có thể trong đầu một vài bạn đã xuất hiện một vài giải pháp. Tuy nhiên, nếu muốn biết đó có phải giải pháp mà mình sắp đề cập đến thì chắc chắn bạn phải theo dõi hết bài viết.

Có một vài cách để chuyển đổi từ kiểu String sang kiểu boolean trong Javascript. Tuy nhiên, bạn phải viết code thật cẩn thận, nếu không, bạn sẽ có thể gặp những lỗi rất khó chịu. Vì vậy, mục tiêu của bài viết này đó là đem đến cho bạn một giải pháp.
1. Có thể giải pháp đầu tiên bạn nghĩ ra là thế này: if(string) ...
Trong một số trường hợp, nó sẽ làm việc, nhưng không phải tất cả. Hãy theo dõi ví dụ dưới đây:

Vấn đề của đoạn code này là nó chỉ đúng khi biến string tồn tại.

2. Giải pháp số 2: Tạo đối tượng kiểu boolean từ một String?

Hãy xem tiếp ví dụ sau

Giải pháp này cũng không dùng được. Lý do ở đây rất đơn giản, vì hàm Boolean(String s) không cố gắng kiểm tra xem giá trị chuỗi input là “true” hay “false” mà nó kiểm tra xem chuỗi input có phải là giá trị non-false hay không (vd: false–0, undefined, an empty string, null,…). Vậy nên cho dù chuỗi string có giá trị là “true” hay “false” thì chắc chắn nó cũng không phải chuỗi rỗng nên điều kiện Boolean(string) luôn cho kết quả là true.

3. Giải pháp là đây: Chỉ đơn giản là so sánh chuỗi với “true”

Rất đơn giản phải không các bạn, tuy nhiên, mọi thứ vẫn chưa kết thúc, chúng ta sẽ viết gọn hơn nữa.

Đến đây thì vấn đề đã được giải quyết xong.

Nguồn: http://heyjavascript.com/javascript-string-to-boolean/

%d bloggers like this: