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

JavaScript Booleans

Một JavaScript Boolean đại diện cho hai giá trị: true hoặc false



Các giá trị Boolean


Thường xuyên, trong lập trình, bạn sẽ cần kiểu dữ liệu có thể chỉ có một hoặc hai giá trị, như:

  • YES / NO
  • ON / OFF
  • TRUE / FALSE

Cho việc này, JavaScript có một kiểu dữ liệu Boolean. Nó chỉ có thể lấy giá trị true hoặc false.



Hàm Boolean()


Bạn có thể dùng hàm Boolean() để biết nếu một biểu thức (hoặc một biến) là true:

ví dụ

Boolean(10 > 9)        // returns true
<!DOCTYPE html>
<html>
<body>

<p>Display the value of Boolean(10 > 9):</p>

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

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

<script>
function myFunction() {
  document.getElementById("demo").innerHTML = Boolean(10 > 9);
}
</script>

</body>
</html>


Hoặc thậm chí dễ dàng hơn:

ví dụ

(10 > 9)              // also returns true
10 > 9                // also returns true
<!DOCTYPE html>
<html>
<body>

<p>Display the value of 10 > 9:</p>

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

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

<script>
function myFunction() {
  document.getElementById("demo").innerHTML = 10 > 9;
}
</script>

</body>
</html>



So sánh và điều kiện


Chương So sánh trong JavaScript (JavaScript Comparisons) đưa ra tổng quát hoàn chỉnh của các toán tử so sánh.

Chương Các điều kiện trong JavaScript (JavaScript Conditions) đưa ra một tổng quát hoàn chỉnh của các câu lệnh điều kiện.

Đây là một số ví dụ:

Toán tửMô tảVí dụ
==Tương đương vớiif (day == "Monday")
>Lớn hơnif (salary > 9000)
<Bé hơnif (age < 18)


Tip: Giá trị Boolean của một biểu thức là nền tảng của tất cả các so sánh và điều kiện trong JavaScript.



Tất cả mọi thứ có một "giá trị" là True


ví dụ

100

3.14

-15

"Hello"

"false"

7 + 1 + 3.14
<!DOCTYPE html>
<html>
<body>

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

<script>
var b1 = Boolean(100);
var b2 = Boolean(3.14);
var b3 = Boolean(-15);
var b4 = Boolean("Hello");
var b5 = Boolean('false');
var b6 = Boolean(1 + 7 + 3.14);

document.getElementById("demo").innerHTML =
"100 is " + b1 + "<br>" +
"3.14 is " + b2 + "<br>" +
"-15 is " + b3 + "<br>" +
"Any (not empty) string is " + b4 + "<br>" +
"Even the string 'false' is " + b5 + "<br>" +
"Any expression (except zero) is " + b6;
</script>

</body>
</html>



Tất cả mọi thứ không có "giá trị" là False


Giá trị Boolean của 0 (zero) là false:

var x = 0;
Boolean(x);       // returns false
<!DOCTYPE html>
<html>
<body>

<p>Display the Boolean value of 0:</p>

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

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

<script>
function myFunction() {
  var x = 0;
  document.getElementById("demo").innerHTML = Boolean(x);
}
</script>

</body>
</html>


Giá trị Boolean của -0 (trừ không) là false:

var x = -0;
Boolean(x);       // returns false
<!DOCTYPE html>
<html>
<body>

<p>Display the Boolean value of -0:</p>

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

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

<script>
function myFunction() {
  var x = -0;
  document.getElementById("demo").innerHTML = Boolean(x);
}
</script>

</body>
</html>


Giá trị Boolean của "" (chuỗi rỗng) là false:

var x = "";
Boolean(x);       // returns false
<!DOCTYPE html>
<html>
<body>

<p>Display the Boolean value of "":</p>

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

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

<script>
function myFunction() {
  var x = "";
  document.getElementById("demo").innerHTML = Boolean(x);
}
</script>

</body>
</html>


Giá trị Boolean của undefined là false:

var x;
Boolean(x);       // returns false
<!DOCTYPE html>
<html>
<body>

<p>Display the Boolean value of undefined:</p>

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

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

<script>
function myFunction() {
  var x;
  document.getElementById("demo").innerHTML = Boolean(x);
}
</script>

</body>
</html>


Giá trị Boolean của null là false:

var x = null;
Boolean(x);       // returns false
<!DOCTYPE html>
<html>
<body>

<p>Display the Boolean value of null:</p>

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

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

<script>
function myFunction() {
  var x = null;
  document.getElementById("demo").innerHTML = Boolean(x);
}
</script>

</body>
</html>


Giá trị Boolean của false là (bạn đoán đi) :

var x = false;
Boolean(x);       // returns false
<!DOCTYPE html>
<html>
<body>

<p>Display the Boolean value of false:</p>

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

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

<script>
function myFunction() {
  var x = false;
  document.getElementById("demo").innerHTML = Boolean(x);
}
</script>

</body>
</html>


Giá trị Boolean của NaN false :

var x = 10 / "H";
Boolean(x);       // returns false
<!DOCTYPE html>
<html>
<body>

<p>Display the Boolean value of NaN:</p>

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

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

<script>
function myFunction() {
  var x = 10 / "H";
  document.getElementById("demo").innerHTML = Boolean(x);
}
</script>

</body>
</html>



Booleans có thể là các đối tượng


Bình thường các boolean JavaScript thường có các giá trị nguyên thủy được tạo từ các giá trị gốc:

var x = false;

Nhưng các boolean cũng có thể được xác định như các đối tượng sử dụng từ khóa  new:

var y = new Boolean(false);


ví dụ

var x = false;
var y = new Boolean(false);

// typeof x returns boolean
// typeof y returns object
<!DOCTYPE html>
<html>
<body>

<p>Never create booleans as objects.</p>
<p>Booleans and objects cannot be safely compared.</p>

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

<script>
var x = false;         // x is a boolean
var y = new Boolean(false);  // y is an object
document.getElementById("demo").innerHTML = typeof x + "<br>" + typeof y;
</script>

</body>
</html>


Tip: Đừng tạo các đối tượng Boolean. Nó làm chậm tốc độ thực thi.

Từ khóa  new làm phức tạp code. Nó có thể gây ra một số kết quả không ngờ:

Khi sử dụng toán tử == , các boolean tương đương sẽ bằng nhau:

ví dụ

var x = false;             
var y = new Boolean(false);

// (x == y) is true because x and y have equal values
<!DOCTYPE html>
<html>
<body>

<p>Never create booleans as objects.</p>
<p>Booleans and objects cannot be safely compared.</p>

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

<script>
var x = false;         // x is a boolean
var y = new Boolean(false);  // y is an object
document.getElementById("demo").innerHTML = (x==y);
</script>

</body>
</html>


Khi sử dụng toán tử  === ,các boolean tương đương không bằng nhau, bởi vì  === cần sự tương đương giữa cả kiểu lẫn giá trị.

ví dụ

var x = false;             
var y = new Boolean(false);

// (x === y) is false because x and y have different types
<!DOCTYPE html>
<html>
<body>

<p>Never create booleans as objects.</p>
<p>Booleans and objects cannot be safely compared.</p>

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

<script>
var x = false;         // x is a number
var y = new Boolean(false);  // y is an object
document.getElementById("demo").innerHTML = (x===y);
</script>

</body>
</html


Hoặc thậm chí còn tệ hơn. Các đối tượng không thể bị so sánh:

ví dụ

var x = new Boolean(false);             
var y = new Boolean(false);

// (x == y) is false because objects cannot be compared
<!DOCTYPE html>
<html>
<body>

<p>Never create booleans as objects.</p>
<p>Booleans and objects cannot be safely compared.</p>

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

<script>
var x = new Boolean(false);  // x is an object
var y = new Boolean(false);  // y is an object
document.getElementById("demo").innerHTML = (x==y);
</script>

</body>
</html>


Tip: Ghi chú sự khác biệt giữa (x==y) và (x===y).

So sánh hai đối tương JavaScript sẽ luôn trả về false.