Kiểu dữ liệu Number trong JavaScript đóng vai trò quan trọng trong việc xử lý các giá trị số học. Từ các phép tính đơn giản đến các tính toán phức tạp, hiểu rõ về Number và Object Number sẽ giúp bạn tối ưu hóa mã nguồn và tránh được nhiều lỗi phổ biến.
Khái niệm về Object Number
Trong JavaScript, Number là một kiểu dữ liệu nguyên thủy đại diện cho các giá trị số. Tuy nhiên, đôi khi chúng ta cần thao tác với các thuộc tính và phương thức của số, và đó là lúc Object Number trở nên hữu ích. Object Number là một đối tượng bao bọc (wrapper object) cho kiểu dữ liệu số, cho phép chúng ta sử dụng các phương thức và thuộc tính của nó.
Tạo Object Number
Bạn có thể tạo một đối tượng Number bằng cách sử dụng hàm khởi tạo Number
.
let numObj = new Number(123); console.log(numObj); // Kết quả: [Number: 123]
Các phương thức và thuộc tính của Object Number
Thuộc tính
- Thuộc tính
constructor
: Thuộc tính này trả về hàm khởi tạo của đối tượng Number.
console.log(numObj.constructor); // Kết quả: [Function: Number]
- Thuộc tính
prototype
: Thuộc tính prototype cho phép bạn thêm các phương thức và thuộc tính vào tất cả các đối tượng Number.
Number.prototype.customMethod = function() { return this + 100; }; console.log(numObj.customMethod()); // Kết quả: 223
- Các thuộc tính Number hữu ích khác:
MAX_VALUE
: Giá trị lớn nhất có thể đại diện bởi một đối tượng Number.console.log(Number.MAX_VALUE); // Kết quả: 1.7976931348623157e+308
MIN_VALUE
: Giá trị nhỏ nhất có thể đại diện bởi một đối tượng Number.console.log(Number.MIN_VALUE); // Kết quả: 5e-324
NaN
: Đại diện cho một giá trị “Not-a-Number”.console.log(Number.NaN); // Kết quả: NaN
NEGATIVE_INFINITY
: Đại diện cho giá trị âm vô cực.console.log(Number.NEGATIVE_INFINITY); // Kết quả: -Infinity
POSITIVE_INFINITY
: Đại diện cho giá trị dương vô cực.console.log(Number.POSITIVE_INFINITY); // Kết quả: Infinity
Phương thức
- Phương thức
toString()
: Chuyển đổi một số thành chuỗi.
console.log(numObj.toString()); // Kết quả: "123"
- Phương thức
toFixed()
: Định dạng số với số chữ số thập phân cố định.
let num = 123.456; console.log(num.toFixed(2)); // Kết quả: "123.46"
- Phương thức
toExponential()
: Chuyển đổi số thành dạng số mũ.
console.log(num.toExponential(2)); // Kết quả: "1.23e+2"
- Phương thức
toPrecision()
: Định dạng số với độ chính xác xác định.
console.log(num.toPrecision(4)); // Kết quả: "123.5"
- Phương thức
valueOf()
: Trả về giá trị nguyên thủy của đối tượng Number.
console.log(numObj.valueOf()); // Kết quả: 123
Các phương thức Number tĩnh hữu ích
- Phương thức
Number.isFinite()
: Kiểm tra xem một giá trị có phải là số hữu hạn hay không.
console.log(Number.isFinite(123)); // Kết quả: true console.log(Number.isFinite(Infinity)); // Kết quả: false
- Phương thức
Number.isInteger()
: Kiểm tra xem một giá trị có phải là số nguyên hay không.
console.log(Number.isInteger(123)); // Kết quả: true console.log(Number.isInteger(123.456)); // Kết quả: false
- Phương thức
Number.isNaN()
: Kiểm tra xem một giá trị có phải là NaN hay không.
console.log(Number.isNaN(NaN)); // Kết quả: true console.log(Number.isNaN(123)); // Kết quả: false
- Phương thức
Number.parseFloat()
vàNumber.parseInt()
: Chuyển đổi chuỗi thành số thực và số nguyên.
console.log(Number.parseFloat("123.456")); // Kết quả: 123.456 console.log(Number.parseInt("123.456")); // Kết quả: 123
Các ví dụ thực tế và ứng dụng
Dưới đây là một ví dụ minh họa về cách sử dụng Object Number trong một tình huống thực tế, chẳng hạn như tính toán tiền lương.
let baseSalary = new Number(50000); let bonus = new Number(5000); let totalSalary = baseSalary + bonus; console.log(`Tổng lương là: ${totalSalary.toFixed(2)} VND`); // Kết quả: Tổng lương là: 55000.00 VND
Lỗi thường gặp và cách khắc phục
Những sai lầm phổ biến khi làm việc với Object Number
- Không phân biệt giữa Number và Object Number: Dẫn đến lỗi khi sử dụng các phương thức.
- Sử dụng sai các phương thức định dạng số: Gây ra các kết quả không mong muốn.
Các mẹo và lời khuyên để tránh lỗi
- Kiểm tra kỹ loại dữ liệu: Sử dụng
typeof
để kiểm tra kiểu dữ liệu trước khi thao tác. - Sử dụng đúng các phương thức và thuộc tính: Hiểu rõ chức năng của từng phương thức và thuộc tính.
Kết luận
Trong bài viết này, chúng ta đã tìm hiểu về Object Number trong JavaScript, từ khái niệm cơ bản đến các phương thức và thuộc tính nâng cao. Hiểu rõ và sử dụng thành thạo Object Number sẽ giúp bạn viết mã nguồn JavaScript hiệu quả và chính xác hơn.
Tài nguyên bổ sung
Để tìm hiểu thêm về Object Number trong JavaScript, bạn có thể tham khảo các tài liệu sau:
- MDN Web Docs về Number
- Sách “Eloquent JavaScript” của Marijn Haverbeke
- Khóa học trực tuyến trên Codecademy