HomeLập trìnhJavaScriptChuỗi JavaScript thành...

Chuỗi JavaScript thành Boolean – Cách phân tích cú pháp Boolean trong JS


Khi bạn đang thao tác dữ liệu, nhận giá trị từ biểu mẫu và xử lý dữ liệu theo cách khác, các giá trị này có thể lấy kiểu dữ liệu không chính xác.

Giả sử bạn muốn giá trị của mình là boolean với một trong hai true hoặc false, nhưng nó được lưu trữ dưới dạng một chuỗi – “true” hoặc “false”. Nó trở nên khó sử dụng cho mục đích dự định của bạn, vì vậy trước tiên bạn phải chuyển đổi các giá trị chuỗi boolean này thành các giá trị boolean thực tế.

Trong bài viết này, bạn sẽ tìm hiểu cách chuyển đổi một chuỗi thành giá trị boolean bằng các phương thức khác nhau trong JavaScript. Trong trường hợp bạn đang vội, đây là cách bạn có thể làm:

// Using identity operator
console.log((boolString === "true")); // true / false

// Using Regex
console.log((/true/).test(boolString)); // true

Nếu bạn không vội, hãy tìm hiểu từng phương pháp và hơn thế nữa.

Cách phân tích chuỗi thành Boolean bằng Toán tử nhận dạng (===)

Toán tử nghiêm ngặt là tên gọi khác của toán tử nhận dạng. Nó sẽ chỉ trở lại true nếu hai giá trị được so sánh là như nhau. Điều này ngụ ý rằng trường hợp thư của họ – và mọi thứ khác – cũng phải giống nhau. Nếu không, nó sẽ trở lại false.

Trong trường hợp này, bạn muốn chuyển đổi một chuỗi thành boolean, nghĩa là bạn sẽ so sánh nó với chuỗi “true”. Nếu cả hai giá trị giống nhau, nó sẽ trả về giá trị boolean truengược lại, nó sẽ trả về giá trị boolean false.

let boolString = "true"; 
let boolValue = (boolString === "true"); 
console.log(boolValue); // true

Đây là một toán tử đẳng thức nghiêm ngặt và sẽ nghiêm ngặt với so sánh trường hợp chữ cái:

let boolString = "True"; 
let boolValue = (boolString === "true"); 
console.log(boolValue); // false

Bạn có thể khắc phục điều này bằng cách sử dụng toLowerCase() Vì vậy, trước tiên, phương thức này chuyển đổi giá trị chuỗi thành kiểu chữ cái phù hợp với phép so sánh của bạn rồi so sánh.

let boolString = "True"; 
let boolValue = (boolString.toLowerCase() === "true"); 
console.log(boolValue); // true

Một phương thức khác rất giống với toán tử nhận dạng là phương thức regex, trong đó bạn có thể kiểm tra xem hai giá trị có khớp nhau không.

Đọc thêm  Cách sử dụng phương thức Map() của JavaScript để giải quyết vấn đề tìm kiếm theo chiều rộng và theo chiều sâu

Cách phân tích chuỗi thành Boolean bằng Regex

Regex là viết tắt của Biểu thức chính quy. Đây là một chủ đề lập trình rộng lớn và bạn có thể sử dụng biểu thức chính quy làm mẫu để so khớp và kiểm tra các kết hợp ký tự chuỗi.

Hướng dẫn rất đơn giản về regex sẽ cho bạn biết rằng biểu thức được đặt giữa hai dấu gạch chéo (/). Ví dụ: nếu bạn muốn kiểm tra giá trị chuỗi thực, bạn sẽ làm như sau:

let boolString = "true"; 
let boolValue = (/true/).test(boolString);
console.log(boolValue); // true

Điều này cũng phân biệt chữ hoa chữ thường:

let boolString = "True"; 
let boolValue = (/true/).test(boolString);
console.log(boolValue); // false

Bạn sẽ phải thêm i gắn cờ ở cuối biểu thức chính quy để cho phép khớp không phân biệt chữ hoa chữ thường.

let boolString = "True"; 
let boolValue = (/true/i).test(boolString);
console.log(boolValue); // true

Cách phân tích chuỗi thành Boolean bằng toán tử KHÔNG kép (*!!*)

Bạn cũng nên biết cách sử dụng toán tử NOT duy nhất mà bạn có thể sử dụng để đảo ngược kết quả.

Khi bạn thêm một toán tử NOT trước một chuỗi, nó sẽ trả về true hoặc false. Nếu đó là một chuỗi rỗng, nó sẽ trả về true nếu không thì, false:

let stringValue1 = !'true';
let stringValue2 = !'';

console.log(stringValue1); // false
console.log(stringValue2); // true

Đây không phải điều bạn muốn. Thay vào đó, bạn muốn chuyển đổi một chuỗi thành boolean, nghĩa là khi chuỗi trống, nó sẽ trả về falsevà trong mọi trường hợp khác, nó sẽ trả về true.

Đây là lúc bạn có thể sử dụng toán tử logic NOT kép. Bạn sử dụng nó để đảo ngược kết quả của toán tử NOT duy nhất:

let stringValue1 = !!'true';
let stringValue2 = !!'';

console.log(stringValue1); // true
console.log(stringValue2); // false

Bạn sử dụng phương pháp này để chuyển đổi bất kỳ giá trị chuỗi nào đến một boolean. Khi nó trống, nó trở lại false. Nếu không thì nó trả về true.

Một nhược điểm của phương pháp này là bạn không thể chuyển đổi một chuỗi "false" đến một giá trị boolean của false. Nó sẽ chỉ trở lại false khi nó là một chuỗi rỗng.

Đọc thêm  Phương thức addEventListener() – Mã ví dụ về trình xử lý sự kiện JavaScript

Cách phân tích chuỗi thành Boolean bằng Trình bao bọc Boolean

Đối tượng Boolean trong JavaScript đại diện cho một giá trị boolean. Phương thức này hoạt động giống như toán tử NOT kép.

// Syntax
Boolean() 

Khi bạn chuyển một giá trị chuỗi vào đối tượng Boolean, nó sẽ ước tính thành truenhưng khi bạn chuyển một chuỗi rỗng, nó sẽ đánh giá thành false.

let stringValue1 = Boolean('true');
let stringValue2 = Boolean('');

console.log(stringValue1); // true
console.log(stringValue2); // false

Hạn chế duy nhất với phương pháp này là nếu bạn thêm khoảng cách giữa dấu ngoặc kép để biểu thị chuỗi, nó sẽ trả về true – có nghĩa là nó coi nó như một chuỗi.

let stringValue = Boolean(' ');

console.log(stringValue); // true

Ghi chú: Khi bạn chuyển đổi một chuỗi "false"bạn muốn nó trả về giá trị boolean là false. Nhưng điều này sẽ trở lại true bởi vì nó chỉ trả về false khi nó là một chuỗi rỗng.

kết thúc

Trong bài viết này, bạn đã học cách chuyển đổi một giá trị chuỗi thành boolean. Cách tiếp cận tốt nhất bao gồm tất cả các tình huống là toán tử đẳng thức đồng nhất, trong khi đối tượng Boolean và logic kép KHÔNG có cú pháp tốt hơn.

Hãy mã hóa vui vẻ!



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status