JavaScript Các Kiểu Dữ Liệu Số
1. Các kiểu số cơ bản
JavaScript chỉ có một kiểu dữ liệu số cho tất cả các loại số: Number.
Số nguyên (Integer):
Số nguyên là số không có phần thập phân.
javascript
const num1 = 42; // Số nguyên dương const num2 = -7; // Số nguyên âm
Số thực (Floating-point):
Số thực là số có phần thập phân, lưu trữ dưới dạng dấu phẩy động.
javascript
const pi = 3.14159; // Số thực const negative = -123.456; // Số thực âm
2. Các giá trị đặc biệt của Number
- NaN (Not-a-Number): Biểu thị khi không thể chuyển đổi hoặc thực hiện phép tính không hợp lệ.
javascript
console.log('abc' * 2); // NaN
- Infinity: Đại diện cho số lớn hơn giới hạn của JavaScript.
javascript
console.log(1 / 0); // Infinity
- -Infinity: Đại diện cho số nhỏ hơn giới hạn âm.
javascript
console.log(-1 / 0); // -Infinity
3. Kiểu số BigInt
JavaScript cung cấp BigInt
để làm việc với các số nguyên rất lớn, vượt quá giới hạn của kiểu Number (khoảng ±(2^53 - 1)).
Cách sử dụng BigInt:
- Định nghĩa BigInt bằng cách thêm hậu tố
n
sau số:
javascript
const bigNum = 123456789012345678901234567890n; console.log(bigNum); // Output: 123456789012345678901234567890n
- Không thể sử dụng BigInt với các kiểu
Number
thông thường:
javascript
console.log(10n + 20n); // Hợp lệ console.log(10n + 20); // Lỗi
4. Các phương thức và hàm liên quan đến số
JavaScript cung cấp các phương thức và hàm để làm việc với số:
Phương thức của Number:
Number.isInteger(x)
: Kiểm tra xem số có phải là số nguyên.
javascript
console.log(Number.isInteger(25)); // true console.log(Number.isInteger(25.5)); // false
Number.isNaN(x)
: Kiểm tra xem giá trị có phải là NaN.
javascript
console.log(Number.isNaN('hello' / 2)); // true
Number.isFinite(x)
: Kiểm tra xem số có phải hữu hạn.
javascript
console.log(Number.isFinite(1000)); // true console.log(Number.isFinite(Infinity)); // false
Hàm toán học (Math):
Math.abs(x)
: Giá trị tuyệt đối.Math.round(x)
: Làm tròn số.Math.floor(x)
: Làm tròn xuống.Math.ceil(x)
: Làm tròn lên.Math.random()
: Sinh số ngẫu nhiên từ 0 đến < 1.Math.pow(a, b)
: Tính lũy thừa aba^bab.Math.sqrt(x)
: Tính căn bậc hai.
Ví dụ:
javascript
console.log(Math.abs(-5)); // Output: 5 console.log(Math.round(4.6)); // Output: 5 console.log(Math.random()); // Output: Một số ngẫu nhiên
5. Các giới hạn của số
- Giá trị nhỏ nhất và lớn nhất:
javascript
console.log(Number.MAX_VALUE); // Giá trị lớn nhất (1.7976931348623157e+308) console.log(Number.MIN_VALUE); // Giá trị dương nhỏ nhất (5e-324)
- Độ chính xác: JavaScript chỉ chính xác đến 15 chữ số. Khi vượt quá, số có thể bị mất chính xác:
javascript
console.log(0.1 + 0.2); // Không chính xác hoàn toàn: 0.30000000000000004
Để giải quyết, sử dụng các thư viện như Big.js
hoặc Decimal.js
.
Tóm tắt
Number
: Dùng cho số thông thường (số nguyên và số thập phân).BigInt
: Dùng khi cần số nguyên rất lớn.- Hỗ trợ nhiều phương thức tiện ích cho việc thao tác và tính toán số.
Xem thêm ví dụ trên Stackoverflow