JavaScript Comparison and Logical Operators trong Javascript

Comparison and Logical operators có thể hiểu nôm na là so sánh và biểu thức điều kiện, chúng được sử dụng để kiểm tra một điều kiện nào đó đúng hay sai.

Comparison Operators

Các toán tử so sánh được sử dụng trong các câu lệnh logic để xác định xem giá trị của biến này có bằng, lớn hơn, nhỏ hơn .vv.  giá trị của biến kia hay không.

Toán tử Mô Tả Ví dụ Kết quả DEMO
== so sánh bằng giá trị

x = 5, x == 8

x = 5, x == 5

x = 5, x == "5"

False

True

True

DEMO

DEMO

DEMO

=== so sánh bằng giá trị và kiểu dữ liệu

x = 5, x === 5

x = 5, x === "5"

True

False

DEMO

DEMO

!== so sánh khác giá trị

x = 5, x != 10

True DEMO
!== so sánh khác giá trị hoặc khác kiểu dữ liệu

x = 5, x !== 5

x = 5, x !== "5"

x = 5, x !== 10

False

True

True

DEMO

DEMO

DEMO

> lớn hơn x = 5, x > 3 True DEMO
< nhỏ hơn x = 5, x < 3 False DEMO
>= lớn hơn hoặc bằng x = 5, x >= 6 False DEMO
<= nhỏ hơn hoặc bằng x = 5, x <= 5 True DEMO

Cách sử dụng

Các toán tử so sánh đươc sử dụng trong các biểu thức điều kiện để kiểm tra giá trị sau đó thực hiện một hành động nào đó tùy thuộc vào kết quả trả về của phép so sánh:

Ví dụ
if (score < 50) result = "Bad";
if (score > 50) result = "Good";

Logical Operators

Các toán tử logic được sử dụng kết hợp với các phép so sánh để xác định tính logic giữa các biến hoặc các giá trị.

Toán tử Mô tả Ví dụ Kết quả DEMO
& so sánh và x = 5, y = 4, ( x > 4 & y > 3) True DEMO
|| so sánh hoặc x = 5, y = 4, ( x > 4 || y > 6) True DEMO
! phủ định của phép so sánh x = 5, y = 4, !( x == y) True DEMO

Conditional (Ternary) Operator

Conditional Operator có thể hiểu là một biểu thức điều kiện, javascript sử dụng nó để gán giá trị cho biến, giá trị sẽ thay đổi tùy thuộc vào kết quả trả về của điều kiện.

Cú phápvariablename = (condition) ? value1:value2

Ví dụ RUN
var skill = (score > 50) ? "good":"bad";

Trong ví dụ trên, nếu điểm bạn nhập vào nhỏ hơn 50 hoặc bằng 50, 'your skill is bad" sẽ được in ra, ngược lại, nếu score cao hơn 50, "your skill is good" sẽ được in ra.

Comparing Different Types

Các phép so sánh đối với các kiểu dữ liệu khác nhau có thể trả về những kết quả không theo ý muốn.

Khi so sánh một chuỗi với một số, chuỗi sẽ được chuyển thành kiểu số và tiến hành so sánh. Một chuỗi rỗng sẽ được chuyển thành 0, một chuỗi không thể chuyển thành kiểu số sẽ được chuyển thành NaN, các phép so sánh với NaN sẽ luôn trả về False.

Ví dụ Kết quả DEMO
10 < 99 True DEMO
10 < "99" True DEMO
10 > "ten" False DEMO
10 < "ten" False DEMO
10 == "ten" False DEMO
"10" < "2" True DEMO
"10" > "2" False DEMO
"10" == "2" False DEMO

Khi so sánh hai chuỗi, "2" sẽ lớn hơn "10" vì 2 lớn hơn 1 theo bảng chữ cái. Để có kết quả chính xác, các biến nên được chuyển thành kiểu Number trước khi so sánh.

Ví dụ RUN
var x = "10";
var y = "2";
x = Number(x);
y = Number(y);
content = (x > y) ? 'Đúng' : 'Sai';

Tham khảo: w3schools.com

Câu hỏi và bài tập

Nguồn: freetuts.net