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
<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>
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ố.
<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>
- Đối với số thực thì độ chính xác sẽ lên đến 17 chữ số.
<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>
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ố.
<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>
- 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ố.
<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>
- 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.
<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>
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.
<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>
- 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
<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>
6) Giá trị Infinity và -Infinity
- Giá trị Infinity và -Infinity trong JavaScript cũng tương tự như dương vô cùng và â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)
- 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>
- Ngoài ra, khi chia một số cho 0 cũng trả về giá trị Infinity.
<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>
- Lưu ý: Infinity và -Infinity có kiểu dữ liệu là number
<script> var a = typeof Infinity; var b = typeof -Infinity; </script>