JavaScript chỉ có một kiểu số: Number (dấu phẩy động 64-bit theo IEEE 754). Không phân biệt integer/float. Khai báo bằng var/let/const.
Cú pháp cơ bản
var points = 100;
let rank = 5;
const PI = 3.14159;
Các dạng số hợp lệ
// Số nguyên
42, -10, 0
// Số thực
3.14, -0.5, 1.23e5 (khoa học: 123000)
// Hệ cơ số khác (ES6+)
0b1010; // nhị phân = 10
0o744; // bát phân = 484
0xFF; // thập lục phân = 255
// Giá trị đặc biệt
Infinity, -Infinity, NaN
Ví dụ kiểm tra độ tuổi
<script>
var age = 20;
if (age > 18) {
document.write("<b>Đủ điều kiện lái xe</b>");
}
</script>
Phương thức Number hay dùng
Number.isInteger(x): Kiểm tra số nguyênNumber.isNaN(x): Kiểm tra NaN (an toàn hơnisNaN())Number.isFinite(x): Kiểm tra số hữu hạntoFixed(n): Làm tròn n chữ số thập phân (trả về string)toPrecision(n): Tổng số chữ số có nghĩatoString(radix): Chuyển cơ số (2, 8, 16...)
Cạm bẫy phổ biến
0.1 + 0.2 === 0.3; // false! Kết quả: 0.30000000000000004
// Giải pháp:
Math.abs(0.1 + 0.2 - 0.3) < Number.EPSILON; // true
// Hoặc dùng thư viện decimal.js cho tiền tệ
BigInt (ES2020) cho số nguyên lớn
const big = 9007199254740991n; // Thêm 'n' cuối
console.log(big + 1n); // 9007199254740992n (đúng, không mất độ chính xác)
// Number.MAX_SAFE_INTEGER = 2^53 - 1
Lưu ý
- Dùng
constcho hằng số,letcho biến thay đổi. - Cẩn thận so sánh số thực – dùng epsilon hoặc làm tròn.
typeof NaN === "number"là true (đặc thù JS).