Cách sử dụng toán tử logic trong JavaScript
Các toán tử logic cho phép bạn thực hiện các phép toán logic trên các giá trị boolean. Chúng cho phép bạn kết hợp, phủ định hoặc so sánh các giá trị boolean và đưa ra các quyết định hợp lý trong mã của bạn dựa trên kết quả.
Khám phá các toán tử logic khác nhau mà JavaScript hỗ trợ, bao gồm toán tử kết hợp Nullish ES6.
Mục Lục
Toán tử logic AND (&&)
Toán tử AND (&&) là toán tử logic trả về ĐÚNG VẬY nếu cả hai toán hạng đánh giá ĐÚNG VẬY Và SAI nếu không thì.
Đây là cú pháp của toán tử AND:
a && b
Đây là một ví dụ về toán tử AND được sử dụng:
const a = 5;
const b = 10;
const c = 15;const result_1 = (a < b) && (b < c);
console.log(result_1);
const result_2 = (a > b) && (b < c);
console.log(result_2);
Trong ví dụ này, kết quả_1 đánh giá để ĐÚNG VẬY bởi vì hai toán hạng trong biểu thức đánh giá là ĐÚNG VẬY. Tuy nhiên, kết quả_2 đánh giá để SAI bởi vì toán hạng đầu tiên (một > b) trả về SAI.
Nếu cả hai toán hạng không phải là boolean, JavaScript sẽ cố gắng chuyển đổi chúng thành giá trị boolean trước khi đánh giá biểu thức. Để chuyển đổi chúng thành booleans, trước tiên, JavaScript sẽ đánh giá xem các giá trị là đúng hay sai.
JavaScript coi bất kỳ giá trị nào không rõ ràng là sai, một giá trị trung thực. Khi được chuyển đổi, chúng đánh giá thành boolean ĐÚNG VẬY.
Tuy nhiên, một số giá trị và kiểu dữ liệu nhất định trong JavaScript là sai, vì vậy khi JavaScript chuyển đổi chúng, chúng sẽ đánh giá thành giá trị boolean SAI.
Các giá trị giả trong JavaScript là:
- SAI
- vô giá trị
- không xác định
- NaN (Không phải là một con số)
- 0
- BigInt (0n)
- Chuỗi rỗng (“” hoặc ” hoặc “)
- không xác định
Khi bạn sử dụng toán tử AND để đánh giá các giá trị không phải boolean, biểu thức ngay lập tức trả về giá trị của toán hạng đầu tiên nếu toán hạng là sai mà không đánh giá toán hạng thứ hai. Hành vi này được gọi là đoản mạch và bạn có thể sử dụng nó để viết các câu lệnh có điều kiện trong JavaScript.
Tuy nhiên, nếu toán hạng đầu tiên là true, biểu thức sẽ tiến hành đánh giá toán hạng thứ hai. Nếu toán hạng thứ hai là true, nó sẽ trả về nó.
Ví dụ:
const a = 5;
const b = 'Hello';
const c = null;const result_1 = a && b;
console.log(result_1);
const result_2 = c && b;
console.log(result_2);
Trong ví dụ này, kết quả_1 ước tính thành “Xin chào” vì cả hai toán hạng trong biểu thức đều đúng. Tuy nhiên, kết quả_2 ngắn mạch và trở lại vô giá trị mà không đánh giá toán hạng thứ hai.
Lưu ý rằng nếu có nhiều toán hạng hơn, toán tử AND sẽ tiếp tục đánh giá chúng cho đến khi gặp giá trị giả. Nếu nó không gặp phải giá trị sai, nó sẽ trả về giá trị trung thực cuối cùng mà nó gặp phải.
Toán tử logic OR (||)
Toán tử OR (||) là toán tử logic trả về ĐÚNG VẬY khi và chỉ khi một hoặc nhiều toán hạng của nó là ĐÚNG VẬY. Nó chỉ trở lại SAI khi cả hai toán hạng đều SAI.
Đây là cú pháp của toán tử OR:
a || b
Đây là một ví dụ về toán tử OR được sử dụng:
const a = 5;
const b = 10;
const c = 15;const result_1 = (a < b) || (b < c);
console.log(result_1);
const result_2 = (a > b) || (b < c);
console.log(result_2);
const result_3 = (a > b) || (b > c);
console.log(result_3);
Trong ví dụ trên, kết quả_1 đánh giá để ĐÚNG VẬY bởi vì cả hai toán hạng trong biểu thức đều đánh giá là ĐÚNG VẬY. kết quả_2 đánh giá để ĐÚNG VẬY bởi vì toán hạng thứ hai ước tính thành ĐÚNG VẬY. kết quả_3 đánh giá để SAI bởi vì hai toán hạng trong biểu thức đánh giá là SAI.
Khi bạn sử dụng toán tử OR trong các ngữ cảnh không phải boolean, JavaScript sẽ cố gắng chuyển đổi thành các giá trị boolean trước khi đánh giá biểu thức.
Khi biểu thức được đánh giá, nếu toán hạng đầu tiên là đúng, toán tử sẽ đoản mạch và trả về nó. Tuy nhiên, nếu nó là sai, nó sẽ tiếp tục đánh giá toán hạng tiếp theo cho đến khi gặp toán hạng trung thực. Nếu không có toán hạng trung thực nào trong biểu thức, nó sẽ trả về giá trị giả cuối cùng mà nó gặp phải.
Ví dụ:
const a = 5;
const b = 'Hello';
const c = null;const result_1 = a || b;
console.log(result_1);
const result_2 = c || b;
console.log(result_2);
const result_3 = c || " ";
console.log(result_3);
Trong ví dụ trên, kết quả_1 ngắn mạch và trở lại 5 bởi vì nó là một giá trị trung thực. kết quả_2 trả về “Xin chào” vì đây là giá trị trung thực đầu tiên mà nó gặp trong biểu thức. kết quả_3 trả về một chuỗi rỗng vì nó là giá trị giả cuối cùng trong biểu thức.
Toán tử logic NOT (!)
Toán tử logic NOT (!) là toán tử đơn nguyên trả về giá trị boolean ngược lại với toán hạng của nó.
Đây là cú pháp của toán tử NOT:
!x
Ở đâu x là một giá trị boolean hoặc true hoặc false.
Đây là một ví dụ về toán tử NOT được sử dụng:
const a = 5;
const b = '';
const c = true;const result_1 = !a;
console.log(result_1);
const result_2 = !b;
console.log(result_2);
const result_3 = !c;
console.log(result_3);
Trong ví dụ trên, toán tử NOT trả về giá trị nghịch đảo của toán hạng boolean. Khi bạn sử dụng toán tử NOT trong ngữ cảnh không phải boolean (kết quả_1 & kết quả_2), nó chuyển đổi giá trị trung thực thành giá trị nghịch đảo của ĐÚNG VẬY và chuyển đổi các giá trị giả thành giá trị nghịch đảo của SAI.
Toán tử Nullish Coalescing (??)
Toán tử kết hợp nullish là một toán tử logic đánh giá hai toán hạng và trả về toán hạng đầu tiên nếu nó không phải là vô giá trị hoặc không xác định. Nếu không, nó trả về toán hạng thứ hai.
Thoạt nhìn, toán tử kết hợp nullish có vẻ giống với toán tử logic OR (||), nhưng thực tế không phải vậy. Điểm khác biệt chính là toán tử OR trả về toán hạng bên phải nếu toán hạng bên trái là giá trị giả “bất kỳ”, không chỉ vô giá trị hoặc không xác định.
Nó cung cấp một cách ngắn gọn để chọn một giá trị mặc định khi gặp vô giá trị hoặc không xác định các giá trị.
Đây là cú pháp cho toán tử kết hợp nullish:
x ?? y
Đây là một ví dụ về toán tử hợp nhất nullish được sử dụng:
const name = null;
const defaultName = "John Doe";const result_1 = name ?? defaultName;
console.log(result_1);
const age = 0;
const defaultAge = 25;
const result_2 = age ?? defaultAge;
console.log(result_2);
Trong ví dụ trên, kết quả_1 trả về “John Doe” vì toán hạng đầu tiên có giá trị là vô giá trị. kết quả_2 lợi nhuận 0 bởi vì, mặc dù đó là một giá trị giả, nó cũng không vô giá trị cũng không không xác định.
Sử dụng toán tử logic trong mã của bạn
Các toán tử logic thường được sử dụng để viết các câu lệnh có điều kiện, gán các giá trị mặc định hoặc chuyển đổi các giá trị boolean dựa trên các điều kiện.
Bằng cách sử dụng các toán tử logic này, bạn có thể viết mã ngắn gọn và biểu cảm hơn để xử lý các tình huống khác nhau dựa trên tính trung thực hoặc sai lệch của các giá trị.