Giả sử tôi có một chuỗi, giá trị đó đã là một số, ví dụ: var str = "1234"
Bây giờ tôi muốn chuyển đổi nó thành số.Tại sao + str là tốt hơn str * 1 trong JS để chuyển đổi chuỗi thành số?
Tôi đã thấy hai thủ đoạn trên internet cho đến nay,
- Sử dụng unary
+
:var num = +str
- Sử dụng các nhà điều hành nhân
*
:var num = str*1
Tôi muốn biết cái nào là tốt hơn nói chung.
Như tôi đã thấy từ nhận xét của câu trả lời được chấp nhận ở đây: Converting Json Results to a Date, có vẻ như là *1
là cách tốt nhất để tránh. Điều này có đúng không và lý do đằng sau nó là gì?
Đối với số nguyên, parseInt() sẽ tốt hơn –
Các cộng unary là theo định nghĩa nhằm chuyển đổi một giá trị cho một số, vì vậy nó là ngữ nghĩa chính xác hơn so nhân với 1 trong đó giới thiệu một toán hạng. @EricSo - parseInt() chỉ tốt hơn nếu bạn đặc biệt muốn bỏ qua bất kỳ dữ liệu không phải số hoặc giá trị vị trí thập phân nào trong chuỗi - nếu không nó sẽ * tệ hơn * so với cộng dồn * vì * nó bỏ qua thứ đó. – nnnnnn