Boolean không xác định JavaScript

Boolean là một giá trị nguyên thủy đại diện cho đúng hoặc sai. Trong ngữ cảnh Boolean, JavaScript sử dụng kiểu truyền để chuyển đổi giá trị thành true/false. Có các phương thức ẩn và rõ ràng để chuyển đổi các giá trị thành các đối tác boolean của chúng

Bài viết này cung cấp tổng quan về các giá trị trung thực và sai lệch cũng như cách chuyển đổi các giá trị thành boolean trong JavaScript

Bảng giá trị trung thực và sai lệch của JavaScript

Boolean[false];         // false
Boolean[undefined];     // false
Boolean[null];          // false
Boolean[''];            // false
Boolean[NaN];           // false
Boolean[0];             // false
Boolean[-0];            // false
Boolean[0n];            // false

Boolean[true];          // true
Boolean['hi'];          // true
Boolean[1];             // true
Boolean[[]];            // true
Boolean[[0]];           // true
Boolean[[1]];           // true
Boolean[{}];            // true
Boolean[{ a: 1 }];      // true
Nguồn. Giá trị thật và giả trong JavaScript là gì?

Tốt nhất là bắt đầu bằng cách hiểu giá trị nào được JavaScript hiểu là trung thực hoặc sai. Điều quan trọng là phải hiểu sự ép buộc ngầm so với sự ép buộc rõ ràng

Ép buộc ngầm định được bắt đầu bởi công cụ JavaScript và diễn ra tự động. Ép buộc rõ ràng được thực hiện bằng cách chuyển đổi các giá trị theo cách thủ công và JavaScript cung cấp các phương thức tích hợp để xử lý việc này

Toán Tử
!!value
0

!!value

Bạn có thể đã quen thuộc với

!!value
1 là toán tử logic NOT. Khi sử dụng hai liên tiếp [
!!value
0],
!!value
1 đầu tiên ép buộc giá trị thành boolean và đảo ngược nó. Ví dụ:
!!value
4 sẽ dẫn đến sai.
!!value
1 thứ hai đảo ngược giá trị đảo ngược trước đó, dẫn đến giá trị boolean thực

Đây thường là một phương pháp ưa thích, vì nó có hiệu suất tốt hơn. Một nhược điểm tiềm ẩn đối với phương pháp này là khả năng đọc bị mất, chủ yếu là nếu các nhà phát triển khác không quen với cách thức hoạt động của toán tử này

________số 8

Đây là một ví dụ chia nhỏ điều này thành các bước

const value = "truthy string";

!value; // false
!!value; // true

Dưới đây là danh sách đầu ra ví dụ với toán tử

!!value
0

!!value
1

Hàm
!!value
7

!!value
3

!!value
7 là một hàm toàn cầu chuyển đổi giá trị mà nó được truyền thành một giá trị boolean.

Bạn không nên sử dụng từ này với từ khóa mới [
!!value
9] vì từ này tạo ra một thể hiện của Boolean có một loại đối tượng. Dưới đây là một ví dụ về việc sử dụng đúng chức năng này.

!!value
6

TL;DR

Có hai phương pháp để chuyển một giá trị thành boolean trong JavaScript

1.
!!value
0

!!value
8

2.
!!value
7

!!value
0
!!value
1

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

Natalie pina

Kỹ sư UX tại D2iQ. Hứng thú với CSS, React, JavaScript, TypeScript, Design Systems, UX và UI Design

Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

!!value
2


!!value
3

Có bất kỳ ví dụ mã còn lại?

Các ví dụ mã mới trong danh mục Javascript

Tôi muốn triển khai thông báo thông báo trong một trong các dự án của mình, tương tự như những gì bạn thấy trong Google Tài liệu khi đang lưu tài liệu. Nói cách khác, một thông báo xuất hiện cho biết rằng tài liệu đang được lưu mỗi khi có thay đổi. Sau đó, khi các thay đổi được lưu, thông báo sẽ trở thành. "Tất cả sự thay đổi đã được lưu lại trên Drive. ”

Hãy xem cách chúng ta có thể làm điều đó bằng cách sử dụng giá trị boolean, nhưng thực sự bao gồm ba trạng thái có thể. Đây chắc chắn không phải là cách duy nhất để làm điều này, và thẳng thắn mà nói, tôi thậm chí không chắc liệu đó có phải là cách tốt nhất hay không. Dù bằng cách nào, nó đã làm việc cho tôi

Đây là một ví dụ về trạng thái “Đang lưu…” đó

Thông báo “Đang lưu” hiển thị bất cứ khi nào có thay đổi đối với tài liệu

…và trạng thái “Đã lưu”

Thông báo “Đã lưu” hiển thị khi thay đổi hoặc nhóm thay đổi đã hoàn tất

Sử dụng giá trị

!!value
4 để xác định trạng thái là phản ứng tức thời của tôi. Tôi có thể có một biến tên là
!!value
5 và sử dụng nó để hiển thị một chuỗi có điều kiện trong mẫu của mình, như vậy

!!value
4

…và trong mẫu

!!value
5

Bây giờ, bất cứ khi nào chúng tôi bắt đầu lưu, chúng tôi đặt giá trị thành

!!value
6 và sau đó đặt thành
!!value
7 bất cứ khi nào không có quá trình lưu nào được tiến hành. Đơn giản, phải không?

Tuy nhiên, có một vấn đề ở đây và đó là một chút vấn đề về trải nghiệm người dùng. Thông báo mặc định được hiển thị là “Đã lưu tất cả thay đổi. ” Khi người dùng lần đầu truy cập trang, không có quá trình lưu nào diễn ra và chúng tôi nhận được thông báo “Đã lưu” mặc dù không có lưu nào xảy ra. Tôi không muốn hiển thị gì cho đến khi thay đổi đầu tiên kích hoạt thông báo “Đang lưu” đầu tiên

Điều này yêu cầu một trạng thái thứ ba trong biến của chúng tôi.

!!value
5. Bây giờ câu hỏi trở thành. chúng ta có thay đổi giá trị thành một biến chuỗi là một trong ba trạng thái không?

!!value
5 có thể nhận hai giá trị.
!!value
6 hoặc
!!value
7. Nhưng giá trị trực tiếp sau khi chúng ta đã khai báo nó trong câu lệnh là gì.
!!value
52? . Tuyệt quá. Chúng tôi có thể sử dụng giá trị
!!value
53 ban đầu đó để tạo lợi thế cho mình… nhưng, điều này sẽ yêu cầu một chút thay đổi trong cách chúng tôi viết điều kiện của mình trong mẫu

Toán tử bậc ba mà chúng ta đang sử dụng đánh giá biểu thức thứ hai cho bất kỳ thứ gì không thể chuyển đổi thành

!!value
6. Các giá trị
!!value
53 và
!!value
7 đều không phải là
!!value
6 và do đó, giải quyết là
!!value
7 cho toán tử bậc ba. Ngay cả câu lệnh if/else cũng hoạt động theo cách tương tự vì
!!value
11 được đánh giá cho bất kỳ thứ gì không phải là
!!value
6. Nhưng chúng tôi muốn phân biệt giữa
!!value
53 và
!!value
7. Điều này cũng có thể khắc phục được bằng cách kiểm tra rõ ràng giá trị
!!value
7, như vậy

!!value
1

Chúng tôi hiện đang kiểm tra nghiêm ngặt các giá trị

!!value
6 và
!!value
7. Điều này làm cho toán tử bậc ba của chúng ta hơi lồng vào nhau và khó đọc. Nếu mẫu của chúng tôi hỗ trợ câu lệnh if/else, thì chúng tôi có thể cấu trúc lại mẫu như thế này

Boolean có thể không được xác định trong JavaScript không?

Một giá trị không xác định được đánh giá là sai trong phép toán boolean . Bằng cách sử dụng toán tử == trong phép so sánh, bạn đang hỏi liệu hai giá trị có thể so sánh được với nhau bất kể loại của chúng là gì không. đó là lý do tại sao. null == không xác định; .

Giá trị boolean có thể không được xác định không?

boolean có thể nhận giá trị true và false. Giá trị từ các loại khác có thể là thật hoặc giả, như không xác định hoặc null .

Làm cách nào để chuyển đổi không xác định thành boolean trong JavaScript?

# 2 Cách chuyển đổi giá trị thành Boolean trong JavaScript .
Boolean[giá trị];. .
chuỗi const = 'chuỗi';. .
số const = 100;. .
sai không xác định null NaN 0 "" [chuỗi trống]
.
Boolean[sai];

Làm cách nào để kiểm tra xem boolean có phải là JavaScript không xác định không?

Để kiểm tra xem một biến là null hay không xác định hãy sử dụng. [hoặc] toán tử để kiểm tra xem một trong hai điều kiện có được đáp ứng hay không . Khi được sử dụng với hai giá trị boolean,. toán tử trả về true nếu một trong hai điều kiện đánh giá là true. Đã sao chép.

Chủ Đề