Psssst. TRẠI BOOTC PHÁT TRIỂN WEB 2023 sẽ bắt đầu chỉ sau vài ngày nữa. Tham gia danh sách chờ, giữ chỗ trong khóa học thuần tập kéo dài 10 tuần của tôi và tìm hiểu các nguyên tắc cơ bản, HTML, CSS, JS, Tailwind, React, Next. jsvà hơn thế nữa. ✨
JavaScript cung cấp nhiều cách khác nhau để chuyển đổi giá trị chuỗi thành số
Tốt. sử dụng đối tượng Số
Theo tôi, cách tốt nhất là sử dụng đối tượng Number, trong ngữ cảnh không phải hàm tạo [không có từ khóa
Number['10,000'] //NaN
Number['10.00'] //10
Number['10000'] //10000
0]const count = Number['1234'] //1234
Điều này cũng quan tâm đến số thập phân
Số là một đối tượng bao bọc có thể thực hiện nhiều thao tác. Nếu chúng ta sử dụng hàm tạo [
Number['10,000'] //NaN
Number['10.00'] //10
Number['10000'] //10000
1], nó sẽ trả về cho chúng ta một đối tượng Số thay vì một giá trị số, vì vậy hãy chú ýCoi chừng dấu phân cách giữa các chữ số
Number['10,000'] //NaN
Number['10.00'] //10
Number['10000'] //10000
Trong trường hợp bạn cần phân tích một chuỗi có dấu phân cách thập phân, hãy sử dụng
Number['10,000'] //NaN
Number['10.00'] //10
Number['10000'] //10000
2 để thay thếCác giải pháp khác
Sử dụng Number['10,000'] //NaN
Number['10.00'] //10
Number['10000'] //10000
3 và Number['10,000'] //NaN
Number['10.00'] //10
Number['10000'] //10000
4
Number['10,000'] //NaN
Number['10.00'] //10
Number['10000'] //10000
Number['10,000'] //NaN
Number['10.00'] //10
Number['10000'] //10000
Một giải pháp tốt khác cho số nguyên là gọi hàm
Number['10,000'] //NaN
Number['10.00'] //10
Number['10000'] //10000
3________số 8Đừng quên tham số thứ hai, là cơ số, luôn là 10 đối với số thập phân, nếu không quá trình chuyển đổi có thể cố gắng đoán cơ số và đưa ra kết quả không mong muốn
Number['10,000'] //NaN
Number['10.00'] //10
Number['10000'] //10000
3 cố gắng lấy một số từ một chuỗi không chỉ chứa một sốconst count = Number['1234'] //1234
0nhưng nếu chuỗi không bắt đầu bằng số, bạn sẽ nhận được
Number['10,000'] //NaN
Number['10.00'] //10
Number['10000'] //10000
7 [Không phải là số]const count = Number['1234'] //1234
2Ngoài ra, giống như Số, nó không đáng tin cậy với dấu phân cách giữa các chữ số
const count = Number['1234'] //1234
3Nếu bạn muốn giữ lại phần thập phân và không chỉ lấy phần nguyên, hãy sử dụng
Number['10,000'] //NaN
Number['10.00'] //10
Number['10000'] //10000
4. Lưu ý rằng không giống như người anh em Number['10,000'] //NaN
Number['10.00'] //10
Number['10000'] //10000
3 của nó, nó chỉ nhận một đối số – chuỗi để chuyển đổiconst count = Number['1234'] //1234
6Sử dụng const count = parseInt['1234', 10] //1234
0
const count = parseInt['1234', 10] //1234
Một “mẹo” là sử dụng toán tử một ngôi
const count = parseInt['1234', 10] //1234
0 trước chuỗiconst count = Number['1234'] //1234
9Xem cách nó trả về
Number['10,000'] //NaN
Number['10.00'] //10
Number['10000'] //10000
7 trong ví dụ đầu tiên, đó là hành vi đúng. nó không phải là một con sốSử dụng const count = parseInt['1234', 10] //1234
3
const count = parseInt['1234', 10] //1234
Tương tự như toán tử một ngôi
const count = parseInt['1234', 10] //1234
0, nhưng trả về phần nguyên, là sử dụng const count = parseInt['1234', 10] //1234
3Number['10,000'] //NaN
Number['10.00'] //10
Number['10000'] //10000
4Sử dụng const count = parseInt['1234', 10] //1234
6
const count = parseInt['1234', 10] //1234
Nói chung, một trong những tùy chọn nhanh nhất, hoạt động giống như toán tử một ngôi
const count = parseInt['1234', 10] //1234
0, do đó, nó không thực hiện chuyển đổi thành số nguyên nếu số đó là số floatNumber['10,000'] //NaN
Number['10.00'] //10
Number['10000'] //10000
7Hiệu suất
Mỗi một trong những phương pháp này có hiệu suất khác nhau trên các môi trường khác nhau, vì tất cả phụ thuộc vào việc triển khai. Trong trường hợp của tôi,
const count = parseInt['1234', 10] //1234
6 là người chiến thắng về hiệu suất nhanh hơn gấp 10 lần so với các lựa chọn thay thế khác