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. Đối số cơ số xác định hệ thống số sẽ được sử dụng cho chuỗi số tương ứng.
Cú pháp của parseInt[] trong Javascript
Sau đây là cú pháp của parseInt[] trong javascript
Và
parseInt[str, radix_value]
Chúng ta có thể sử dụng parseInt[] trong Javascript theo hai cách, một cách không có giá trị cơ số [cơ sở của giá trị số nguyên] và cách kia bằng cách chuyển một giá trị cơ số làm đối số thứ hai.
Tham số của phần trăm [] trong Javascript
Sau đây là các tham số của parseInt[] trong javascript
- str. Một đối số kiểu dữ liệu chuỗi sẽ được phân tích thành một giá trị kiểu dữ liệu số nguyên
- radix_value. Nó đại diện cho cơ sở của số trong chuỗi ký tự sẽ được phân tích cú pháp. Nó là một đối số tùy chọn trong hàm parseInt[].
Giá trị trả về của parseInt[] trong Javascript
Loại trả lại. số hoặc NaN
- parseInt[] trong Javascript trả về một giá trị số nguyên, được chuyển đổi từ chuỗi ký tự đã truyền và cũng dựa trên giá trị cơ số tùy chọn
- parseInt[] trong Javascript cũng có thể trả về NaN khi giá trị cơ số nhỏ hơn 2 hoặc lớn hơn 36 hoặc ký tự chuỗi đầu tiên không thể được phân tích cú pháp thành giá trị số nguyên
Ngoại lệ của parseInt[] trong Javascript
JavaScript xem xét các ngoại lệ sau với hàm `parseInt[]'
- Nếu đối số chuỗi trong hàm bắt đầu bằng các ký tự "0x0x0x", cơ số sẽ được coi là 161616, i. e. một giá trị thập lục phân
- Nếu đối số chuỗi bắt đầu bằng ký tự "000", cơ số sẽ được coi là 888 [giá trị bát phân] trong nhiều triển khai ECMAScript3 nhưng ngoại lệ này không được dùng trong ECMAScript mới nhất
- Nếu đối số chuỗi bắt đầu bằng bất kỳ giá trị/ký tự nào khác, thì giá trị cơ số sẽ là 101010, i. e. được coi là một số thập phân
- Nếu đối số chuỗi chứa một số không hợp lệ, không thể phân tích cú pháp thành giá trị số nguyên, hàm sẽ trả về NaNNaNNaN [Không phải là Số].
Ví dụ về phần trăm [] trong Javascript
Hãy xem một đoạn mã javascript để hiểu cách hoạt động của parseInt[]
mã số
console.log[parseInt["100111", 2]]
đầu ra
Giải trình. Trong ví dụ trên, chúng ta đang chuyển một giá trị chuỗi số nhị phân "100111" với cơ số 2 [radix_value = 2] cho hàm parseInt[]. 100111 sẽ được phân tích dưới dạng số nhị phân và nó sẽ được chuyển thành số thập phân 39 với cơ số 10
Hãy hiểu việc chuyển đổi "100111" với cơ số 2 thành một số nguyên của cơ số 10. Ở đây, chuyển đổi nhị phân sang thập phân được thực hiện bởi hàm parseInt[].
Phần trăm [] trong JavaScript là gì?
parseInt[] là một hàm dựng sẵn trong Javascript, hàm này nhận hai tham số, tham số đầu tiên là chuỗi ký tự sẽ được chuyển đổi thành giá trị số nguyên và tham số thứ hai là tham số tùy chọn, i. e. , giá trị cơ số của chuỗi ký tự số. Phương thức parseInt[] sau đó phân tích chuỗi và trả về một số nguyên hoặc NaN.
Giải thích bát phân không có cơ số
Xin lưu ý rằng thông tin bên dưới không áp dụng cho các triển khai mới hơn kể từ năm 2021.
Nhiều triển khai ECMAScript3 đã diễn giải một chuỗi số bắt đầu bằng 0 trong chuỗi ký tự dưới dạng giá trị bát phân, mặc dù chuỗi số bắt đầu bằng 0 được coi là giá trị thập phân trong ECMAScript6 mới nhất. Sau đây có thể đã mang lại một kết quả bát phân hoặc thập phân
mã số
console.log[parseInt['0e0']] console.log[parseInt['08']]
đầu ra. [với ECMAScript 3]
Giải trình
- Cả hai chuỗi ký tự đều bắt đầu bằng 000, vì vậy chúng được coi là số bát phân.
- 0e00e00e0 chuỗi ký tự được đánh giá cho đến 000 đầu tiên, khi một char eee xuất hiện, nó dừng phân tích cú pháp chuỗi vì nó không có trong biểu diễn bát phân, do đó, nó sẽ chỉ xuất ra 000
- Với chuỗi ký tự 080808, 888 cũng không có trong biểu diễn bát phân, vì vậy nó sẽ dừng ở 888 và sẽ cho đầu ra 000.
đầu ra. [với ECMAScript mới nhất sau năm 2021]
Giải trình
- Những con số này được coi là số thập phân trong ECMAScript mới nhất
- Ở đây cũng vậy, chuỗi ký tự 0e00e00e0 được đánh giá cho đến 000 đầu tiên, khi char eee xuất hiện, nó dừng phân tích cú pháp chuỗi vì nó không có trong biểu diễn thập phân, vì vậy nó sẽ chỉ xuất ra 000
- Với chuỗi ký tự 080808, cả 000 và 888 đều có trong biểu diễn thập phân, do đó, nó sẽ cho đầu ra 888
Chức năng phân tích cú pháp chặt chẽ hơn
Đôi khi, có thể phân tích các số chính xác hơn là một lợi thế. Nó sẽ trả về một số nguyên được phân tích cú pháp tương đương hoặc nó sẽ trả về NaN. Ở đây, hàm Number[] được sử dụng để lấy một giá trị số nguyên ra khỏi chuỗi ký tự và nó chỉ có thể chấp nhận một đối số, tức là. e. một chuỗi ký tự. Nó không lấy giá trị cơ số làm tham số
cú pháp
mã ví dụ
Chúng tôi đang sử dụng một biểu thức chính quy trong ví dụ dưới đây để kiểm tra các giá trị
ĐĂNG KÝ. /^[-+]?[\d+. Vô cực]$/
Biểu thức chính quy ở trên sẽ kiểm tra xem chuỗi có bắt đầu bằng dấu +++ hoặc −-− hay không [??? biểu thị không nhất thiết phải có] và nhóm [\d+. Infinity]$ biểu thị rằng chuỗi phải kết thúc bằng các chữ số [0−9]+[0-9]+[0−9]+ hoặc từ InfinityInfinityInfinity, thì chỉ chuỗi đó mới được chấp nhận
// stricter parseInt[] in Javascript function strictParseInt[value] { if [/^[-+]?[\d+|Infinity]$/.test[value]] { return Number[value] } else { return NaN } } console.log[strictParseInt['36']] // 36 console.log[strictParseInt['-36']] // -36 console.log[strictParseInt['+36']] // 36 console.log[strictParseInt['Infinity']] // Infinity console.log[strictParseInt['+Infinity']] // Infinity console.log[strictParseInt['-Infinity']] // -Infinity console.log[strictParseInt['35e+10']] // NaN console.log[strictParseInt['str1.61803398875']] // NaN console.log[strictParseInt['1.61803398875']] // NaN
ĐẦU RA
36 -36 36 Infinity Infinity -Infinity NaN NaN NaN
Giải trình. Đầu ra hoàn toàn dựa trên biểu thức chính quy và nó trả về một giá trị số nguyên với cơ số 10, nếu giá trị kiểm tra biểu thức chính quy là đúng, nếu không thì trả về NaN [Không phải là Số]
Thêm ví dụ
1. Các ví dụ khác nhau về parseInt[] trong Javascript
// simple integer values console.log[parseInt[12]] // 12 // with decimal numbers console.log[parseInt["36.59"]]; // 36 // with hexadecimal radix value console.log[parseInt["F", 16]]; // 15 // number starting with 0x considered as hexadecimal console.log[parseInt["0xE"]]; // 14 // negative string literal console.log[parseInt["-71", 8]]; // -57 // numbers are detected till a char appears in the string console.log[parseInt["35,12"]]; // 35 console.log[parseInt["FXX12", 16]]; // 15 // Not a Number [NaN] returned if invalid string is passed console.log[parseInt["javascript", 8]]; // NaN console.log[parseInt["123", 2]]; // NaN is returned as binary can only have 0 or 1 // there is a loss of precision in case of BigInt values with parseInt[] function console.log[parseInt["369876124563132121n"]]; // 369876124563132100
đầu ra
12 36 15 14 -57 35 15 NaN 1 369876124563132100
Giải trình. Trên đây là một số ví dụ về parseInt[] trong javascript
2. Thêm hai chuỗi có và không sử dụng phương thức parseInt[]
var x = "5" var y = "11" // adding two string without parseInt[], standard method var z = x + y console.log["Without using parseInt[]: " + z]; // 511 // adding two strings using parseInt[] and // considering the string literals as integer values var z = Number.parseInt[x] + Number.parseInt[y]; console.log["Using parseInt[]: " + z]; // 16
đầu ra
________số 8Giải trình. Ví dụ trên giải thích rõ ràng cách có thể thêm hai chuỗi bằng cách sử dụng parseInt[] và không sử dụng parseInt[]
3. Truyền đối số cơ số trong phương thức parseInt[]
Truyền một cơ sở [radix_value] của số trong chuỗi ký tự
console.log[parseInt["101", 2]] // 5 console.log[parseInt["102", 3]] // 11 console.log[parseInt["123", 4]] // 27 console.log[parseInt["999", 10]] // 999 console.log[parseInt["10a", 11]] // 131 console.log[parseInt["10b", 12]] // 155 console.log[parseInt["8c", 13]] // 116 console.log[parseInt["26d", 14]] // 489 console.log[parseInt["12e", 15]] // 269 console.log[parseInt["10f", 16]] // 271
đầu ra
0console.log[parseInt["100111", 2]]
Giải trình. Tất cả đầu ra của bàn điều khiển là số thập phân với cơ số 10, parseInt[] lấy chuỗi ký tự bằng radix_value tương ứng của chúng và chuyển đổi chúng thành số nguyên với số thập phân cơ số 10
Tính tương thích của trình duyệt web
Phương thức parseInt trong javascript được hỗ trợ bởi tất cả các trình duyệt như Chrome, Edge, Safari, Opera, v.v.