Có đúng == đúng trong JavaScript không?
0 và 1 là loại 'số' nhưng trong biểu thức Boolean, 0 chuyển thành 1 và 1 chuyển thành 2. Vì một biểu thức Boolean chỉ có thể mang lại một giá trị Boolean, nên bất kỳ biểu thức nào không rõ ràng là 2 hoặc 1 đều được đánh giá theo mức độ trung thực và sai lệch Show
Số không là số duy nhất đánh giá là sai. Tất cả các số khác 0 khác, bất kể hình thức hoặc biểu thức đánh giá là trung thực
Điều này cho chúng ta biết rằng 42 là trung thực, nếu không biểu thức sẽ mang lại, 1. Biểu thức OR ngắn mạch trên toán hạng true/true đầu tiên
Vì 0 là sai nên toán hạng thứ hai được trả về. Điều này sẽ xuất hiện trong chủ đề toán tử logic, vì vậy hãy lập bảng ngay bây giờ mà không tốn quá nhiều năng lượng cho những gì tôi đã viết ở đây. Miễn là bạn có được ý tưởng chung, chúng ta sẽ ổn thôi Đối với phần thứ hai của câu hỏi của bạn,
sẽ không bao giờ mang lại 2, vì toán tử so sánh kiểu dữ liệu nghiêm ngặt 1. Một hình thức so sánh lỏng lẻo (chuyển đổi loại) sẽ mang lại 2 nếu 3 khác không
Tuy nhiên, như chúng ta đã thấy trước đó, chúng ta không cần phải so sánh đúng hay sai, trừ khi chúng ta hoàn toàn nhấn mạnh vào cái này hay cái kia.
Hy vọng rằng điều này không làm bạn bối rối nhiều hơn nó giúp ích. Theo dõi một số bài đọc về true và false trong chuyển đổi kiểu JavaScript và cách nó áp dụng cho các biểu thức logic và điều kiện Trong JavaScript, một giá trị là true nếu kiểu ép buộc tích hợp của JavaScript chuyển đổi nó thành 2. Mọi giá trị đều là trung thực hoặc sai, vì vậy bất kỳ giá trị nào không phải là giả phải là trung thựcChân lý và giả dối thường xuất hiện trong ngữ cảnh của các câu nói 9. Ví dụ: câu lệnh 9 dưới đây sẽ in ra khi và chỉ khi 1 là đúng
Hãy nhớ rằng chỉ có 7 giá trị trong JavaScript là sai
Mọi giá trị khác đều là sự thật. Ví dụ, ngay cả một đối tượng 22 chứa 1 là đúng sự thậtVới toán tử logic NOTToán tử logic NOT trong JavaScript chuyển đổi giá trị thật thành 1 và giá trị giả thành 2. Nói cách khác, toán tử logic 26 cho phép bạn lưu trữ giá trị mà phép cưỡng chế boolean tích hợp sẵn của JavaScript chuyển đổi 1 thànhBạn có thể thấy toán tử logic NOT hai lần liên tiếp. 28. Đây là cách bạn chuyển đổi một giá trị thành boolean bằng cách sử dụng tính năng cưỡng chế tích hợp sẵn của JavaScript Toán tử logic OR ( 0) (phân tách logic) cho một tập hợp toán hạng là đúng khi và chỉ khi một hoặc nhiều toán hạng của nó là đúng. Nó thường được sử dụng với các giá trị boolean (logic). Khi có, nó trả về giá trị Boolean. Tuy nhiên, toán tử 0 thực sự trả về giá trị của một trong các toán hạng đã chỉ định, vì vậy nếu toán tử này được sử dụng với các giá trị không phải Boolean, nó sẽ trả về giá trị không phải BooleanThử nócú pháp 0Sự miêu tảNếu có thể chuyển đổi 2 thành 3, trả về 2; Nếu một giá trị có thể được chuyển đổi thành 3, thì giá trị đó được gọi là trung thực. Nếu một giá trị có thể được chuyển đổi thành 7, thì giá trị đó được gọi là giảVí dụ về các biểu thức có thể được chuyển đổi thành false là
Mặc dù toán tử 0 có thể được sử dụng với các toán hạng không phải là giá trị Boolean, nhưng nó vẫn có thể được coi là toán tử boolean vì giá trị trả về của nó luôn có thể được chuyển đổi thành nguyên hàm boolean. Để chuyển đổi rõ ràng giá trị trả về của nó (hoặc bất kỳ biểu thức nào nói chung) thành giá trị boolean tương ứng, hãy sử dụng toán tử NOT kép hoặc hàm tạo 96Đánh giá ngắn mạchBiểu thức logic OR được đánh giá từ trái sang phải, nó được kiểm tra để đánh giá "ngắn mạch" có thể xảy ra bằng cách sử dụng quy tắc sau 97 được đánh giá ngắn mạch theo biểu thức trung thựcĐoản mạch có nghĩa là phần 98 ở trên không được đánh giá, do đó bất kỳ tác dụng phụ nào của việc làm như vậy đều không có hiệu lực (e. g. , nếu 98 là một lời gọi hàm, thì lời gọi đó sẽ không bao giờ diễn ra). Điều này xảy ra vì giá trị của toán tử đã được xác định sau khi đánh giá toán hạng đầu tiên. Xem ví dụ________số 8 Ưu tiên điều hànhCác biểu thức sau đây có vẻ tương đương, nhưng không phải vậy, bởi vì toán tử 00 được thực thi trước toán tử 0 (xem thứ tự ưu tiên của toán tử) 9ví dụSử dụng HOẶCĐoạn mã sau hiển thị các ví dụ về toán tử 0 (logic OR) 0Ghi chú. Nếu bạn sử dụng toán tử này để cung cấp giá trị mặc định cho một số biến, hãy lưu ý rằng mọi giá trị giả sẽ không được sử dụng. Nếu bạn chỉ cần lọc ra 8 hoặc 94, hãy cân nhắc sử dụng toán tử kết hợp nullishQuy tắc chuyển đổi cho booleanChuyển AND thành ORHoạt động sau đây liên quan đến booleans 7luôn luôn bằng 8Chuyển đổi HOẶC thành ANDHoạt động sau đây liên quan đến booleans 9luôn luôn bằng 0Xóa dấu ngoặc lồng nhauVì các biểu thức logic được đánh giá từ trái sang phải, luôn có thể xóa dấu ngoặc đơn khỏi biểu thức phức tạp theo một số quy tắc Tại sao true == [] false trong JavaScript?Giá trị. [] là sai , vì [] là một Đối tượng (mảng là đối tượng) và tất cả các đối tượng, không bao gồm null , là trung thực . Vì vậy, bất kỳ mảng nào, ngay cả khi nó trống sẽ luôn là một giá trị trung thực và ngược lại với một giá trị trung thực luôn là sai.
True và True có giống nhau trong JavaScript không?Kết quả của True == 1 trong JavaScript là gì?0 và 1 là loại 'số' nhưng trong biểu thức Boolean, 0 chuyển thành false và 1 chuyển thành true . Vì một biểu thức Boolean chỉ có thể mang lại một Boolean, nên bất kỳ biểu thức nào không rõ ràng là đúng hoặc sai đều được đánh giá theo mức độ đúng và sai. Số không là số duy nhất đánh giá là sai.
Điều gì là đúng sự thật trong JS?Trong JavaScript, giá trị trung thực là giá trị được coi là đúng khi gặp phải trong ngữ cảnh Boolean . Tất cả các giá trị là trung thực trừ khi chúng được định nghĩa là giả. Nghĩa là, tất cả các giá trị đều trung thực ngoại trừ false , 0 , -0 , 0n , "" , null , undefined và NaN. |