Hàm parseInt() trong JavaScript
Bùi Tấn Lực
- 1042
- 07/09/2025
Chức năng của Hàm parseInt() trong JavaScript
Hàm parseInt() trong JavaScript dùng để chuyển các ký tự trong chuỗi string thành số nguyên, nếu không chuyển được thành số nguyên thì trả về NaN.
Cú pháp của Hàm parseInt() trong JavaScript
parseInt("kytu");
kytu: Ký tự (Ví dụ: 35.66, 35, -35,.....)
Code Hàm parseInt() trong JavaScript
parseInt("35abc");
<script>
document.write(parseInt("35abc")+"<br>"); // Kết quả: 35
document.write(parseInt("abc35")+"<br>"); // Kết quả: NaN
document.write(parseInt("35")+"<br>"); // Kết quả: 35
document.write(parseInt("-35")+"<br>"); // Kết quả: -35
document.write(parseInt(" 35 ")+"<br>"); // Kết quả: 35
document.write(parseInt("35.66")+"<br>"); // Kết quả: 35
document.write(parseInt("35.00")+"<br>"); // Kết quả: 35
document.write(parseInt("35 36 37")+"<br>"); // Kết quả: 35
</script>
Kết quả:'
35
NaN
35
35
35
35
35
So sánh hàm parseInt() với Number() và parseFloat() trong JavaScript
JavaScript cung cấp nhiều cách chuyển một giá trị thành số, nhưng mỗi hàm có cách xử lý khác nhau. parseInt() phù hợp khi cần lấy phần số nguyên, parseFloat() giữ lại phần thập phân, còn Number() cố gắng chuyển toàn bộ giá trị thành kiểu số.
Việc lựa chọn đúng hàm giúp hạn chế kết quả ngoài dự kiến, đặc biệt khi dữ liệu đầu vào là chuỗi có ký tự, số thập phân hoặc giá trị rỗng.
parseInt() chuyển chuỗi thành số nguyên
parseInt() đọc giá trị từ đầu chuỗi và trả về số nguyên. Khi gặp phần không thể tiếp tục phân tích, hàm dừng tại vị trí đó và bỏ qua phần còn lại.
const value = parseInt("125px");
console.log(value); // 125
const price = parseInt("89.99");
console.log(price); // 89
Điểm cần chú ý là parseInt() không làm tròn số thập phân. Nó loại bỏ phần sau dấu thập phân để tạo ra số nguyên.
Nếu chuỗi không bắt đầu bằng một giá trị có thể chuyển thành số nguyên, kết quả thường là NaN.
parseFloat() chuyển chuỗi thành số thực
parseFloat() cũng phân tích chuỗi từ đầu nhưng cho phép giữ lại phần thập phân. Vì vậy, hàm phù hợp khi dữ liệu có thể chứa số thực và cần bảo toàn giá trị sau dấu chấm.
const weight = parseFloat("12.75");
console.log(weight); // 12.75
const value = parseFloat("45.6kg");
console.log(value); // 45.6
Giống parseInt(), parseFloat() có thể lấy phần số hợp lệ ở đầu chuỗi và dừng khi gặp ký tự không phù hợp.
Nếu yêu cầu của chương trình là lấy một số nguyên từ chuỗi, parseInt() sẽ phù hợp hơn. Ngược lại, khi cần giữ phần thập phân, nên ưu tiên parseFloat().
Number() chuyển đổi giá trị thành kiểu số
Number() xử lý toàn bộ giá trị đầu vào thay vì đọc một phần số ở đầu chuỗi. Vì vậy, chuỗi chứa thêm ký tự thường không được chuyển đổi thành số hợp lệ.
const first = Number("125");
console.log(first); // 125
const second = Number("125px");
console.log(second); // NaN
const third = Number("89.99");
console.log(third); // 89.99
Đây là điểm khác biệt quan trọng so với parseInt() và parseFloat(). Với dữ liệu phải là một biểu diễn số hoàn chỉnh, Number() giúp phát hiện chuỗi không hợp lệ rõ ràng hơn.
Nên sử dụng parseInt(), parseFloat() hay Number()?
Không có hàm nào luôn tốt hơn hai hàm còn lại. Lựa chọn phụ thuộc vào dạng dữ liệu và kết quả cần nhận được.
- Dùng parseInt() khi cần lấy số nguyên từ chuỗi, chẳng hạn giá trị bắt đầu bằng số nhưng có thêm đơn vị.
- Dùng parseFloat() khi cần lấy số thực và giữ lại phần thập phân từ chuỗi.
- Dùng Number() khi muốn chuyển toàn bộ giá trị thành số và yêu cầu dữ liệu đầu vào phải có định dạng số hợp lệ.
Ví dụ, với chuỗi "150px", parseInt() có thể lấy được 150, trong khi Number() trả về NaN. Nếu dữ liệu là "150.5" và cần giữ nguyên phần thập phân, parseFloat() hoặc Number() sẽ phù hợp hơn.
Do đó, thay vì chọn hàm theo thói quen, nên xác định trước dữ liệu có chứa đơn vị hay ký tự dư thừa không, có cần số nguyên hay số thực, và có cần kiểm tra toàn bộ chuỗi đầu vào hay không.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Hàm parseInt() trong JavaScript.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *