By GokiSoft.Com| 15:59 19/05/2020|
Tài Liệu Javascript

JavaScript Comparison and Logical Operators - So sánh và các toán tử Logic trong JavaScript

Các toán tử so sánh và logic được dùng để kiểm tra true hoặc false.



Các toán tử so sánh


Các toán tử so sánh được dùng trong các câu lệnh logic để quyết định sự tương đương hay khác biệt giữa các biến hoặc các giá trị.

Cho x = 5, bảng dưới giải thích về các toán tử so sánh:

Toán tửMô tảSo sánhTrả về
!=không tương đươngx != 8true
!==không bằng cả về giá trị và kiểux !== 5false
x !== "5"true
x !== 8true
>lớn hơnx > 8false
<bé hơnx < 8true
>=lớn hơn hoặc bằngx >= 8false
<=bé hơn hoặc bằngx <= 8true



Làm sao có thể sử dụng nó


Các toán tử so sánh có thể sử dụng trong các câu lệnh điều kiện để so sánh các giá trị và hành động dựa trên kết quả:

if (age < 18) text = "Too young";



Bạn sẽ học nhiều hơn nữa về sử dụng các câu lệnh điều kiện trong chương tiếp theo.



Các toán tử Logic


Các toán tử logic được dùng để quyết định logic giữa các biến hoặc các giá trị.

Cho x = 6 và y = 3, bảng dưới giả thích các toán tử logic:

Toán tửMô tảVí dụ
&&(x < 10 && y > 1) là true
||hoặc(x == 5 || y == 5) là false
!phủ định!(x == y) là true



Toán tử có điều kiện(Ternary)


JavaScript cũng chứa một toán tử điều kiện, có thể gán một giá trị cho một biến dựa trên một vài điều kiện.

Syntax

variablename = (condition) ? value1:value2 

ví dụ

var voteable = (age < 18) ? "Too young":"Old enough";
<!DOCTYPE html>
<html>
<body>

<p>Input your age and click the button:</p>

<input id="age" value="18" />

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
  var age, voteable;
  age = document.getElementById("age").value;
  voteable = (age < 18) ? "Too young":"Old enough";
  document.getElementById("demo").innerHTML = voteable + " to vote.";
}
</script>

</body>
</html>


Nếu biến age là giá trị dưới 18, giá trị lựa chọn của biến sẽ là "Too young", nếu không giá trị lựa chọn sẽ là "Old enough".



So sánh các kiểu khác nhau


So sánh các kiểu dữ liệu khác nhau có thể dẫn tới một số kết quả không ngờ.

Khi so sánh một chuỗi với một số, JavaScript sẽ chuyển chuỗi thành một số khi bắt đầu so sánh. Một chuỗi rỗng chuyển thành 0. Một chuỗi không phải số chuyển thành NaN nghĩa là luôn false.

Trường hợpGiá trị
2 < 12true
2 < "12"true
2 < "John"false
2 > "John"false
2 == "John"false
"2" < "12"false
"2" > "12"true
"2" == "12"false


Khi so sánh hai chuỗi,"2" sẽ lớn hơn "12", vì (theo abc) 1 bé hơn 2.

Để đảm bảo có một kết quả phù hợp, các biến nên đươc chuyển thành kiểu phù hợp trước khi so sánh:

age = Number(age);
if (isNaN(age)) {
  voteable = "Input is not a number";
} else {
  voteable = (age < 18) ? "Too young" : "Old enough";
}
<p>Input your age and click the button:</p>

<input id="age" value="18" />

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
  var age, voteable;
  age = Number(document.getElementById("age").value);
  if (isNaN(age)) {
    voteable = "Input is not a number";
  } else {
    voteable = (age < 18) ? "Too young" : "Old enough";
  }
  document.getElementById("demo").innerHTML = voteable;
}
</script>

</body>
</html>