18/08/2018, 11:13

Số (number) trong JavaScript

1) Một vài khái niệm về số trong JavaScript - Trong JavaScript, số là một tập hợp gồm một hoặc nhiều chữ số (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) và có thể chứa thêm một dấu chấm. Số không chứa dấu chấm được gọi là số nguyên Số có chứa dấu chấm được gọi là số thực - Một vài ví dụ ...

1) Một vài khái niệm về số trong JavaScript

- Trong JavaScript, số là một tập hợp gồm một hoặc nhiều chữ số (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) và có thể chứa thêm một dấu chấm.

  • Số không chứa dấu chấm được gọi là số nguyên
  • Số có chứa dấu chấm được gọi là số thực

- Một vài ví dụ về số nguyên:

  • => 5
  • => 27
  • => 142

- Một vài ví dụ về số thực:

  • => 7.5
  • => 135.48
  • => 20.55

- Ngoài ra, ta có thể đặt dấu trừ phía trước một số để đại diện cho số âm, ví dụ:

  • => -100
  • => -2.55

- Lưu ý: Tuyệt đối không đặt một số bên trong cặp dấu nháy kép hoặc cặp dấu nháy nhọn, vì điều đó sẽ khiến dữ giá trị bị ép sang dữ liệu kiểu chuỗi.

2) Số được viết dưới dạng biểu thức mũ

- Nếu một số quá lớn hoặc quá nhỏ, ví dụ như:

  • 5000000000
  • 0.000005

- Thì ta có thể viết chúng dưới dạng biểu thức mũ, ví dụ:

  • 5000000000 (có giá trị tương đương với 5.109) viết sang dạng biểu thức mũ sẽ là 5e+9
  • 0.000005 (có giá trị tương đương với 5.10-6) viết sang dạng biểu thức mũ sẽ là 5e-6
Ví dụ
<script>
    document.write("5e+9 sẽ bằng với: " + (5e+9) + "<br>");
    document.write("5e-6 sẽ bằng với: " + (5e-6) + "<br>");
    document.write("145e+2 sẽ bằng với: " + (145e+2) + "<br>");
    document.write("145.55e+5 sẽ bằng với: " + (145.55e+5) + "<br>");
    document.write("145.55e-6 sẽ bằng với: " + (145.55e-6) + "<br>");
</script>
Xem ví dụ

3) Vấn đề "độ chính xác" của một số

- Trong JavaScript, một số nguyên sẽ có độ chính xác lên đến 15 chữ số.

Ví dụ
<script>
    var a = 99999999999999; //14 chữ số (nằm trong độ chính xác)
    var b = 999999999999999; //15 chữ số (nằm trong độ chính xác)
    var c = 9999999999999999; //16 chữ số (không còn chính xác)
    var d = 99999999999999999; //17 chữ số (không còn chính xác)
</script>
Xem ví dụ

- Đối với số thực thì độ chính xác sẽ lên đến 17 chữ số.

Ví dụ
<script>
    var a = 0.999999999999999; //16 chữ số (nằm trong độ chính xác)
    var b = 0.9999999999999999; //17 chữ số (nằm trong độ chính xác)
    var c = 0.99999999999999999; //18 chữ số (không còn chính xác)
    var d = 0.999999999999999999; //19 chữ số (không còn chính xác)
</script>
Xem ví dụ

4) Các phép toán trên số

- Tương tự như trong đại số, chúng ta có bốn phép toán cơ bản (cộng, trừ, nhân, chia) dùng để thực hiện việc tính toán trên các con số.

Ví dụ
<script>
    var a = 35 + 5; //biến a sẽ có giá trị là số 40
    var b = 35 - 5; //biến a sẽ có giá trị là số 30
    var c = 35 * 5; //biến a sẽ có giá trị là số 175
    var d = 35 / 5; //biến a sẽ có giá trị là số 7
</script>
Xem ví dụ

- Có một trường hợp đặc biệt, nếu trong phép toán chứa toán hạng là số nhưng lại bị đặt bên trong cặp dấu nháy kép hoặc cặp dấu nháy đơn, thì JavaScript sẽ cố gắng xem toán hạng đó như là một số.

Ví dụ
<script>
    var a = 35 - "5"; //biến a sẽ có giá trị là 30
    var b = "35" * 5; //biến b sẽ có giá trị là 175
    var c = "35" / "5"; //biến c sẽ có giá trị là 7
</script>
Xem ví dụ

- Lưu ý: Ở trường hợp đặc biệt trên, nếu toán tử là phép cộng thì nó sẽ bị chuyển thành dạng ghép chuỗi.

Ví dụ
<script>
    var a = 35 + "5"; //biến a sẽ có giá trị là 355
    var b = "72" + 3; //biến b sẽ có giá trị là 723
    var c = "16" + "4"; //biến c sẽ có giá trị là 164
</script>
Xem ví dụ

5) Giá trị NaN

- Giá trị NaN (Not a Number) là một giá trị thuộc kiểu number, nhưng nó không phải là một số.

- Giá trị NaN thường được sinh ra khi phép toán có chứa toán hạng không thuộc kiểu dữ liệu number và toán tử trong phép toán đó là phép trừ, phép nhân, hoặc phép chia.

Ví dụ
<script>
    var a = 1993 - "Lập Trình Web"; //Biến a sẽ có giá trị là NaN
    var b = 1993 * "Lập Trình Web"; //Biến b sẽ có giá trị là NaN
    var c = 1993 / "Lập Trình Web"; //Biến c sẽ có giá trị là NaN
</script>
Xem ví dụ

- Nếu thực hiện phép toán bất kỳ giữa một số nào đó với giá trị NaN thì nó sẽ cho ra giá trị NaN

Ví dụ
<script>
    var a = 1993 + NaN; //Biến a sẽ có giá trị là NaN
    var b = 1993 - NaN; //Biến b sẽ có giá trị là NaN
    var c = 1993 * NaN; //Biến c sẽ có giá trị là NaN
    var d = 1993 / NaN; //Biến d sẽ có giá trị là NaN
</script>
Xem ví dụ

6) Giá trị Infinity-Infinity

- Giá trị Infinity và -Infinity trong JavaScript cũng tương tự như dương vô cùngâm vô cùng trong đại số.

  • Giá trị Infinity đại diện cho số dương lớn nhất (nằm ngoài khả năng đo đếm của JavaScript)
  • Giá trị -Infinity đại diện cho số âm lớn nhất (nằm ngoài khả năng đo đếm của JavaScript)
Ví dụ

- Sau khi thực thi đoạn mã bên dưới, các bạn sẽ thấy giá trị của biến number cứ được bình phương lên đến một mức không thể đo đếm được và nó trả về Infinity

<script>
    var number = 2;
    while (number != Infinity) {
        number = number * number;
        document.write(number + "<br>");
    }
</script>
Xem ví dụ

- Ngoài ra, khi chia một số cho 0 cũng trả về giá trị Infinity.

Ví dụ
<script>
    var a = 5/0; //Biến a sẽ có giá trị là Infinity
    var b = -5/0; //Biến b sẽ có giá trị là -Infinity
</script>
Xem ví dụ

- Lưu ý: Infinity và -Infinity có kiểu dữ liệu là number

Ví dụ
<script>
    var a = typeof Infinity;
    var b = typeof -Infinity;
</script>
Xem ví dụ
0