Hàm Number() trong JavaScript
Bùi Tấn Lực
- 952
- 07/09/2025
Chức năng của Hàm Number() trong JavaScript
Hàm Number() trong JavaScript dùng để chuyển các kiểu dữ liệu khác về kiểu dữ liệu number và trở thành số, nếu không biến thành số được thì trả kết quả về NaN.
Cú pháp của Hàm Number() trong JavaScript
Number("kytu");
kytu: Ký tự (Ví dụ: 35.6, 35, false, true,......)
Code Hàm Number() trong JavaScript
Number("35");
<script>
document.write(Number("35abc")+"<br>"); // Kết quả: NaN
document.write(Number("35")+"<br>"); // Kết quả: 35
document.write(Number("35.6")+"<br>"); // Kết quả: 35.6
document.write(Number("aaa35.6")+"<br>"); // Kết quả: NaN
document.write(Number(false)+"<br>"); // Kết quả: 0
document.write(Number(true)+"<br>"); // Kết quả: 1
document.write(typeof Number("35abc")+"<br>"); // Kết quả: number
document.write(typeof Number("35")+"<br>"); // Kết quả: number
document.write(typeof Number("35.6")+"<br>"); // Kết quả: number
document.write(typeof Number("aaa35.6")+"<br>"); // Kết quả: number
document.write(typeof Number(false)+"<br>"); // Kết quả: number
document.write(typeof Number(true)+"<br>"); // Kết quả: number
</script>
Kết quả:
NaN
35
0
1
Hàm Number() chuyển đổi các kiểu dữ liệu như thế nào?
Number() thực hiện chuyển đổi giá trị được truyền vào thành kiểu số. Kết quả phụ thuộc vào dữ liệu ban đầu, vì vậy cùng một hàm nhưng có thể trả về một số hợp lệ hoặc NaN nếu giá trị không thể chuyển đổi.
Hiểu cách Number() xử lý từng kiểu dữ liệu giúp bạn tránh những kết quả không mong muốn khi nhận dữ liệu từ biểu mẫu, URL, API hoặc các nguồn đầu vào khác.
Number() chuyển đổi chuỗi thành số
Khi truyền một chuỗi biểu diễn số vào Number(), JavaScript sẽ cố gắng chuyển toàn bộ chuỗi đó thành một giá trị số. Chuỗi có thể chứa số nguyên, số thập phân hoặc các dạng số được JavaScript hỗ trợ.
const a = Number("25");
const b = Number("12.5");
console.log(a); // 25
console.log(b); // 12.5
Điểm cần lưu ý là toàn bộ chuỗi phải có thể được phân tích thành một số. Nếu chuỗi chứa thêm ký tự không phù hợp, Number() sẽ không tự bỏ qua phần ký tự đó mà trả về NaN.
const result = Number("25px");
console.log(result); // NaN
Number() chuyển đổi Boolean, null và undefined
Number() cũng có quy tắc riêng khi xử lý các giá trị Boolean và giá trị đặc biệt. true được chuyển thành 1, còn false được chuyển thành 0.
console.log(Number(true)); // 1
console.log(Number(false)); // 0
Với null, kết quả là 0. Trong khi đó, undefined không có giá trị số tương ứng nên Number() trả về NaN.
console.log(Number(null)); // 0
console.log(Number(undefined)); // NaN
Đây là điểm dễ gây nhầm lẫn khi dữ liệu có thể chứa giá trị rỗng hoặc chưa được xác định. Nếu không kiểm tra trước, việc chuyển đổi trực tiếp có thể tạo ra kết quả khác với mong đợi.
Number() xử lý chuỗi rỗng và khoảng trắng
Chuỗi rỗng và chuỗi chỉ chứa khoảng trắng được Number() xử lý như giá trị không có nội dung số và kết quả nhận được là 0.
console.log(Number("")); // 0
console.log(Number(" ")); // 0
Quy tắc này đặc biệt đáng chú ý khi chuyển đổi dữ liệu từ ô nhập liệu. Một trường dữ liệu tưởng như chưa có giá trị có thể trở thành số 0 sau khi dùng Number(). Vì vậy, nếu ứng dụng cần phân biệt giá trị rỗng với số 0, nên kiểm tra dữ liệu trước khi chuyển đổi.
Number() trả về NaN khi không thể chuyển thành số
Nếu giá trị truyền vào không thể được biểu diễn dưới dạng số hợp lệ, Number() trả về NaN (Not-a-Number). Đây không phải là chuỗi thông báo lỗi mà là một giá trị đặc biệt thuộc kiểu Number.
console.log(Number("hello")); // NaN
console.log(Number("12abc")); // NaN
Khi cần kiểm tra kết quả chuyển đổi, có thể sử dụng Number.isNaN() để xác định giá trị có thực sự là NaN hay không.
const value = Number("hello");
if (Number.isNaN(value)) {
console.log("Không thể chuyển đổi thành số");
}
Cách kiểm tra này hữu ích khi dữ liệu đầu vào đến từ người dùng hoặc nguồn bên ngoài, giúp chương trình xử lý trường hợp không hợp lệ thay vì tiếp tục tính toán với một giá trị không phải số.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Hàm Number() 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 *