Phương thức nào được sử dụng để chuyển đổi một số trong chuỗi thành số nguyên trong JavaScript?
Có hai cách chính để chuyển đổi một chuỗi thành một số trong JavaScript. Một cách là phân tích cú pháp và cách khác là thay đổi loại của nó thành Số. Tất cả các thủ thuật trong các câu trả lời khác (e. g. , cộng đơn nguyên) liên quan đến việc ép buộc loại chuỗi thành một số. Bạn cũng có thể làm điều tương tự một cách rõ ràng với hàm Number Show
phân tích cú pháp
parseInt và parseFloat là hai hàm được sử dụng để phân tích chuỗi thành số. Quá trình phân tích cú pháp sẽ dừng âm thầm nếu nó chạm vào một ký tự mà nó không nhận ra, điều này có thể hữu ích để phân tích cú pháp các chuỗi như "92px", nhưng nó cũng hơi nguy hiểm, vì nó sẽ không gây ra bất kỳ loại lỗi nào cho bạn khi đầu vào không hợp lệ, thay vào đó bạn . Khoảng trắng ở đầu chuỗi bị bỏ qua. Đây là một ví dụ về việc nó làm điều gì đó khác với những gì bạn muốn và không đưa ra dấu hiệu nào cho thấy đã xảy ra sự cố
Bạn nên luôn chỉ định cơ số làm đối số thứ hai. Trong các trình duyệt cũ hơn, nếu chuỗi bắt đầu bằng 0, nó sẽ được hiểu là bát phân nếu cơ số không được chỉ định, điều này khiến nhiều người ngạc nhiên. Hành vi cho hệ thập lục phân được kích hoạt bằng cách có chuỗi bắt đầu bằng 0x nếu không có cơ số nào được chỉ định, e. g. , Thay đổi loại chuỗi thành số Tất cả các thủ thuật khác được đề cập ở trên không sử dụng parseInt, liên quan đến việc ép buộc hoàn toàn chuỗi thành một số. Tôi thích làm điều này một cách rõ ràng,
Điều này có hành vi khác với các phương pháp phân tích cú pháp (mặc dù nó vẫn bỏ qua khoảng trắng). Nó nghiêm ngặt hơn. nếu nó không hiểu toàn bộ chuỗi thì nó trả về Rõ ràng, chuyển đổi thành Số cung cấp cho bạn một giá trị có thể là số float chứ không phải số nguyên, vì vậy nếu bạn muốn một số nguyên, bạn cần sửa đổi nó. Có một vài cách để làm điều này
Bất kỳ toán tử theo chiều bit nào (ở đây tôi đã thực hiện theo chiều bit hoặc, nhưng bạn cũng có thể thực hiện phép phủ định kép như trong câu trả lời trước đó hoặc dịch chuyển bit) sẽ chuyển đổi giá trị thành số nguyên 32 bit và hầu hết chúng sẽ chuyển đổi thành số nguyên có dấu. Lưu ý rằng điều này sẽ không làm bạn muốn đối với số nguyên lớn. Nếu số nguyên không thể được biểu diễn trong 32 bit, nó sẽ bao bọc
Để làm việc chính xác với các số lớn hơn, bạn nên sử dụng các phương pháp làm tròn
Hãy nhớ rằng sự ép buộc hiểu ký hiệu hàm mũ và Vô cực, vì vậy, 0 là 1 chứ không phải NaN, trong khi các phương thức phân tích cú pháp thì khôngPhong tục Không chắc là một trong hai phương pháp này thực hiện chính xác những gì bạn muốn. Ví dụ: thông thường tôi muốn có lỗi nếu phân tích cú pháp không thành công và tôi không cần hỗ trợ cho Vô cực, hàm mũ hoặc khoảng trắng ở đầu. Tùy thuộc vào trường hợp sử dụng của bạn, đôi khi bạn nên viết một hàm chuyển đổi tùy chỉnh Luôn kiểm tra xem đầu ra của Số hoặc một trong các phương pháp phân tích cú pháp có phải là loại số bạn mong đợi không. Bạn gần như chắc chắn sẽ muốn sử dụng 2 để đảm bảo số đó không phải là NaN (thường là cách duy nhất để bạn phát hiện ra rằng phân tích cú pháp không thành công)Trong JavaScript, có nhiều cách để chuyển đổi giữa. Chúng tôi đã giới thiệu cách chuyển đổi một số thành một chuỗi. Trong hướng dẫn ngắn này, chúng ta sẽ xem cách bạn có thể chuyển đổi một chuỗi thành một số trong JavaScript Có nhiều trường hợp một số có thể được lưu trữ dưới dạng một chuỗi. Ví dụ: các giá trị nhận được từ một phần tử biểu mẫu luôn là các chuỗi Nói chung, bạn có thể coi một chuỗi JavaScript chứa một số (và chỉ một số) như thể đó là một số và JavaScript sẽ tự động thực hiện chuyển đổi chuỗi thành số cho bạn. Tuy nhiên, đôi khi bạn cần trích xuất một số từ một chuỗi hoặc thực hiện nhiều quyền kiểm soát hơn đối với cách thực hiện chuyển đổi Trong mẹo nhanh này, chúng tôi sẽ đề cập đến ba cách để chuyển đổi một chuỗi thành một số Chuyển đổi một chuỗi thành một số bằng cách sử dụng sốCách trực tiếp nhất để chuyển đổi một chuỗi thành một số trong JavaScript là sử dụng hàm dựng sẵn
Khi ghi giá trị của Bạn có thể xem ví dụ đang hoạt động trong bản demo CodePen sau Xem cây bút Xin lưu ý rằng nếu bạn chuyển một chuỗi không phải số cho một số, Chuyển đổi một chuỗi thành một số bằng cách sử dụng parseInt() và parseFloat()Một cách tiếp cận khác là sử dụng 0. Như bạn có thể thấy, parseInt() phân tích một chuỗi thành một số nguyên, trong khi 0 phân tích một chuỗi thành một số có dấu thập phânVí dụ
Tương tự như cách tiếp cận đầu tiên, khi ghi giá trị của 4 dưới dạng chuỗi và string . Tuy nhiên, khi phân tích cú pháp str bằng cách sử dụng 7, giá trị của 8 trở thành 10 và loại của nó là number Mặt khác, khi phân tích cú pháp 2, giá trị của 3 trở thành 4 dưới dạng số và loại của nó là number Bạn có thể xem ví dụ đang hoạt động trong bản demo CodePen sau Xem cây bút Đối số thứ hai của parseInt
Không có đối số thứ hai này, 7 thực hiện phát hiện cơ số tự động. Nghĩa là, nó phát hiện cơ số của một số theo định dạng của nó trong chuỗi. Một số bắt đầu bằng 8 hoặc 9 được coi là số thập lục phân (cơ số 16) và tất cả các số khác được coi là số thập phânVì vậy, ví dụ: nếu bạn gọi Để tránh bất kỳ sự nhầm lẫn nào, hãy luôn chỉ định cơ sở khi sử dụng Chuyển đổi một chuỗi thành một số bằng cách sử dụng Unary PlusCách thứ ba để chuyển đổi một chuỗi thành một số là sử dụng phép cộng đơn nguyên ( Ví dụ
Khi bạn đăng nhập loại Bạn có thể xem ví dụ đang hoạt động trong bản demo CodePen sau Xem cây bút Cách xử lý các ký tự không phải là số trong chuỗiĐiều quan trọng là phải tính đến các trường hợp trong đó một chuỗi có thể chứa các ký tự không phải là số và cách mỗi phương pháp xử lý vấn đề này Khi sử dụng Mặt khác, 0 phân tích chuỗi nếu số ở đầu chuỗi. Nó loại bỏ các ký tự còn lại và lấy số gặp phải ở đầu chuỗi. Tuy nhiên, nếu chuỗi bắt đầu bằng các ký tự không phải là số, dấu cộng (+) và dấu trừ (-) ở đầu hoặc dấu thập phân, thì giá trị trả về là giá trị đặc biệt NaN (Không phải là số)Bạn có thể thấy nó hoạt động trong bản demo CodePen sau Xem cây bút Như bạn có thể thấy, Bạn có thể kiểm tra xem một giá trị có phải là NaN hay không bằng cách sử dụng hàm toàn cầu Phần kết luậnHướng dẫn ngắn này đã trình bày ba cách để chuyển đổi một chuỗi thành một số trong JavaScript. Mặt khác, 0 là những cách tiếp cận linh hoạt hơn về mặt xử lý các ký tự khác trong số. Tuy nhiên, hai chức năng này không thể sử dụng thay thế cho nhau trong một số trường hợp. Ví dụ: nếu số trong chuỗi là số float và bạn sử dụng parseInt() , thì bạn sẽ nhận được giá trị không chính xác so với chuỗiMặc dù đơn nguyên dễ sử dụng nhưng nó có thể làm giảm khả năng đọc mã của bạn. Cho dù bạn chọn phương pháp nào, điều quan trọng là phải chú ý các trường hợp kết quả trả về có thể là NaN Nếu bạn thấy bài viết này hữu ích, bạn cũng có thể thích những điều sau đây
Chia sẻ bài viết nàyDianne Pena Dianne là biên tập viên bản tin của SitePoint. Cô ấy đặc biệt thích tìm hiểu về JavaScript, CSS và các công nghệ front-end Phương thức nào được sử dụng để chuyển đổi một số trong chuỗi thành số nguyên trong JS?Số. parseInt() phân tích cú pháp một chuỗi và trả về một số nguyên.
Hàm nào được sử dụng để chuyển đổi một số thành một số nguyên JavaScript?Hàm parseInt chuyển đổi đối số đầu tiên của nó thành một chuỗi, phân tích cú pháp chuỗi đó, sau đó trả về một số nguyên hoặc NaN. Nếu không phải là NaN , giá trị trả về sẽ là số nguyên là đối số đầu tiên được lấy dưới dạng một số trong cơ số đã chỉ định.
Chúng ta có thể chuyển đổi giá trị chuỗi thành số trong JavaScript không?Phương thức parseInt phân tích một giá trị dưới dạng chuỗi và trả về số nguyên đầu tiên
Hàm nào trong JavaScript chuyển đổi một số của một chuỗi?Định nghĩa và cách sử dụng. toString() trả về một số dưới dạng chuỗi. |