JavaScript Chuyển Đổi Dữ Liệu String Sang Dạng Số Number
1. Sử dụng Number()
Number()
chuyển đổi chuỗi thành một số. Nếu không thể chuyển đổi, kết quả sẽ là NaN
.
Ví dụ:
javascript
console.log(Number("123")); // Output: 123 console.log(Number("123.45")); // Output: 123.45 console.log(Number("abc")); // Output: NaN
- Chuyển đổi chuỗi rỗng thành số:
javascript
console.log(Number("")); // Output: 0
2. Sử dụng parseInt()
parseInt()
phân tích chuỗi và trả về số nguyên. Nếu chuỗi bắt đầu bằng một số hợp lệ, nó sẽ dừng tại ký tự đầu tiên không hợp lệ.
Ví dụ:
javascript
console.log(parseInt("123abc")); // Output: 123 console.log(parseInt("123.45")); // Output: 123 console.log(parseInt("abc123")); // Output: NaN console.log(parseInt(" 42")); // Output: 42 (bỏ qua khoảng trắng đầu)
- Hỗ trợ chuyển đổi với cơ số (radix):
javascript
console.log(parseInt("1010", 2)); // Output: 10 (nhị phân) console.log(parseInt("20", 8)); // Output: 16 (bát phân)
3. Sử dụng parseFloat()
parseFloat()
chuyển chuỗi thành một số dấu phẩy động (số thực). Nó xử lý phần thập phân nhưng dừng tại ký tự đầu tiên không hợp lệ.
Ví dụ:
javascript
console.log(parseFloat("123.45abc")); // Output: 123.45 console.log(parseFloat("123abc")); // Output: 123 console.log(parseFloat("abc123")); // Output: NaN
4. Sử dụng toán tử dấu cộng (+
)
Đặt dấu cộng trước chuỗi sẽ cố gắng chuyển đổi chuỗi thành một số.
Ví dụ:
javascript
console.log(+"123"); // Output: 123 console.log(+"123.45"); // Output: 123.45 console.log(+"abc"); // Output: NaN console.log(+""); // Output: 0
5. Sử dụng Math
(gián tiếp)
Nếu chuỗi chứa giá trị số hợp lệ, việc sử dụng các phương thức của Math
(như Math.abs
, Math.round
,...) sẽ chuyển đổi chuỗi sang số.
Ví dụ:
javascript
console.log(Math.abs("42")); // Output: 42 console.log(Math.round("123.45")); // Output: 123 console.log(Math.max("10", 20)); // Output: 20
6. Chuyển đổi từ Boolean sang số
Boolean cũng có thể được coi là chuỗi, và kết quả khi chuyển đổi sẽ như sau:
javascript
console.log(Number(true)); // Output: 1 console.log(Number(false)); // Output: 0
Lưu ý khi chuyển đổi:
-
NaN
: Nếu không thể chuyển đổi chuỗi thành số, kết quả sẽ làNaN
. -
Kiểm tra NaN: Sử dụng
Number.isNaN()
để kiểm tra:javascript
const result = Number("abc"); console.log(Number.isNaN(result)); // true
-
Chuyển đổi an toàn: Trong trường hợp phức tạp, bạn có thể kiểm tra chuỗi trước khi chuyển đổi:
javascript
function safeConvert(str) { return isNaN(Number(str)) ? null : Number(str); } console.log(safeConvert("123")); // Output: 123 console.log(safeConvert("abc")); // Output: null
So sánh các phương pháp
Phương pháp | Hoạt động với số nguyên | Hoạt động với số thực | Xử lý chuỗi không hợp lệ |
---|---|---|---|
Number() |
✅ | ✅ | Trả về NaN |
parseInt() |
✅ | ❌ | Dừng tại ký tự không hợp lệ |
parseFloat() |
✅ | ✅ | Dừng tại ký tự không hợp lệ |
+ |
✅ | ✅ | Trả về NaN |
Xem thêm ví dụ trên Stackoverflow