nên thực hiện các chuyển đổi như vậy với API thay vì với Thao tác chuỗi. Mọi theo dõi lỗi/ngoại lệ đều cho phép thiết lập triển khai đáng tin cậy hơn. g. Kiểm tra TryParse
Định nghĩa và cách sử dụng
Phương thức ________ 59 ______ trả về một số là âm, dương hay bằng không
Nếu số dương, phương thức này trả về 1
Nếu số âm, nó trả về -1
Nếu số là 0, nó trả về 0
Hỗ trợ trình duyệt
Math.sign[]
là một tính năng ECMAScript6 [ES6]
ES6 [JavaScript 2015] được hỗ trợ trong tất cả các trình duyệt hiện đại
ChromeEdgeFirefoxSafariOperaCóCóCóCóCóMath.sign[]
không được hỗ trợ trong Internet Explorer 11 [hoặc cũ hơn]
cú pháp
Thông số
Tham sốMô tảxBắt buộc. Một sốGiá trị trả về
Một số, đại diện cho dấu hiệu của số được chỉ định- Nếu số dương, nó trả về 1
- Nếu số âm, nó trả về -1
- Nếu số là số 0 dương, nó trả về 0
- Nếu số là số 0 âm, nó trả về -0
- Nếu số không phải là số, nó sẽ trả về NaN
Một số dấu phẩy động được phân tích cú pháp từ string
đã cho hoặc
parseFloat[3.14];
parseFloat["3.14"];
parseFloat[" 3.14 "];
parseFloat["314e-2"];
parseFloat["0.0314E+2"];
parseFloat["3.14some non-digit characters"];
parseFloat[{
toString[] {
return "3.14";
},
}];
1 khi không thể chuyển đổi ký tự không phải khoảng trắng đầu tiên thành một sốGhi chú. JavaScript không có sự phân biệt "số dấu phẩy động" và "số nguyên" ở cấp độ ngôn ngữ.
parseFloat[3.14];
parseFloat["3.14"];
parseFloat[" 3.14 "];
parseFloat["314e-2"];
parseFloat["0.0314E+2"];
parseFloat["3.14some non-digit characters"];
parseFloat[{
toString[] {
return "3.14";
},
}];
2 và parseFloat[]
chỉ khác nhau về hành vi phân tích cú pháp, nhưng không nhất thiết là giá trị trả về của chúng. Ví dụ: parseFloat[3.14];
parseFloat["3.14"];
parseFloat[" 3.14 "];
parseFloat["314e-2"];
parseFloat["0.0314E+2"];
parseFloat["3.14some non-digit characters"];
parseFloat[{
toString[] {
return "3.14";
},
}];
4 và parseFloat[3.14];
parseFloat["3.14"];
parseFloat[" 3.14 "];
parseFloat["314e-2"];
parseFloat["0.0314E+2"];
parseFloat["3.14some non-digit characters"];
parseFloat[{
toString[] {
return "3.14";
},
}];
5 sẽ trả về cùng một giá trị. một parseFloat[3.14];
parseFloat["3.14"];
parseFloat[" 3.14 "];
parseFloat["314e-2"];
parseFloat["0.0314E+2"];
parseFloat["3.14some non-digit characters"];
parseFloat[{
toString[] {
return "3.14";
},
}];
6 42Hàm
parseFloat[3.14];
parseFloat["3.14"];
parseFloat[" 3.14 "];
parseFloat["314e-2"];
parseFloat["0.0314E+2"];
parseFloat["3.14some non-digit characters"];
parseFloat[{
toString[] {
return "3.14";
},
}];
7 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 đó dưới dạng số thập phân bằng chữ, sau đó trả về một số hoặc parseFloat[3.14];
parseFloat["3.14"];
parseFloat[" 3.14 "];
parseFloat["314e-2"];
parseFloat["0.0314E+2"];
parseFloat["3.14some non-digit characters"];
parseFloat[{
toString[] {
return "3.14";
},
}];
1. Cú pháp số mà nó chấp nhận có thể được tóm tắt là- Các ký tự được chấp nhận bởi
parseFloat[]
là dấu cộng [
0], dấu trừ [_______7_______1 U+002D HYPHEN-MINUS], chữ số thập phân [parseFloat["FF2"];
2 –parseFloat["FF2"];
3], dấu thập phân [parseFloat["FF2"];
4], chỉ số mũ [parseFloat["FF2"];
5 hoặcparseFloat["FF2"];
6] và ký tựparseFloat["FF2"];
7parseFloat["FF2"];
- Dấu
0/parseFloat["FF2"];
1 chỉ có thể xuất hiện hoàn toàn ở đầu chuỗi hoặc ngay sau ký tựparseFloat["FF2"];
5/parseFloat["FF2"];
6. Dấu thập phân chỉ có thể xuất hiện một lần và chỉ trước ký tựparseFloat["FF2"];
5/parseFloat["FF2"];
6. Ký tựparseFloat["FF2"];
5/parseFloat["FF2"];
6 chỉ có thể xuất hiện một lần và chỉ khi có ít nhất một chữ số trước nóparseFloat["FF2"];
- Không gian hàng đầu trong đối số được cắt bớt và bỏ qua
parseFloat[]
cũng có thể phân tích cú pháp và trả về
7 hoặcparseFloat["NaN"]; // NaN
8 nếu chuỗi bắt đầu bằngparseFloat["NaN"]; // NaN
7 hoặcparseFloat["FF2"];
0 trước không có hoặc nhiều khoảng trắngparseFloat["1.7976931348623159e+308"]; // Infinity parseFloat["-1.7976931348623159e+308"]; // -Infinity
parseFloat[]
chọn chuỗi con dài nhất bắt đầu từ đầu tạo ra một số hợp lệ bằng chữ. Nếu nó gặp một ký tự không hợp lệ, nó sẽ trả về số được biểu thị cho đến thời điểm đó, bỏ qua ký tự không hợp lệ và tất cả các ký tự theo sau nó- Nếu ký tự đầu tiên của đối số không thể bắt đầu bằng chữ số hợp pháp theo cú pháp ở trên, thì
7 trả vềparseFloat[3.14]; parseFloat["3.14"]; parseFloat[" 3.14 "]; parseFloat["314e-2"]; parseFloat["0.0314E+2"]; parseFloat["3.14some non-digit characters"]; parseFloat[{ toString[] { return "3.14"; }, }];
1parseFloat[3.14]; parseFloat["3.14"]; parseFloat[" 3.14 "]; parseFloat["314e-2"]; parseFloat["0.0314E+2"]; parseFloat["3.14some non-digit characters"]; parseFloat[{ toString[] { return "3.14"; }, }];
Về mặt cú pháp, parseFloat[]
phân tích một tập hợp con của cú pháp mà hàm
parseFloat["1.7976931348623159e+308"]; // Infinity
parseFloat["-1.7976931348623159e+308"]; // -Infinity
5 chấp nhận. Cụ thể, parseFloat[]
không hỗ trợ các chữ số không thập phân với các tiền tố parseFloat["1.7976931348623159e+308"]; // Infinity
parseFloat["-1.7976931348623159e+308"]; // -Infinity
7, parseFloat["1.7976931348623159e+308"]; // Infinity
parseFloat["-1.7976931348623159e+308"]; // -Infinity
8 hoặc parseFloat["1.7976931348623159e+308"]; // Infinity
parseFloat["-1.7976931348623159e+308"]; // -Infinity
9 nhưng hỗ trợ mọi thứ khác. Tuy nhiên, parseFloat[]
nhẹ nhàng hơn parseFloat["1.7976931348623159e+308"]; // Infinity
parseFloat["-1.7976931348623159e+308"]; // -Infinity
5 vì nó bỏ qua các ký tự không hợp lệ ở cuối, điều này sẽ khiến parseFloat["1.7976931348623159e+308"]; // Infinity
parseFloat["-1.7976931348623159e+308"]; // -Infinity
5 trả về parseFloat[3.14];
parseFloat["3.14"];
parseFloat[" 3.14 "];
parseFloat["314e-2"];
parseFloat["0.0314E+2"];
parseFloat["3.14some non-digit characters"];
parseFloat[{
toString[] {
return "3.14";
},
}];
1Tương tự như số chữ và
parseFloat["1.7976931348623159e+308"]; // Infinity
parseFloat["-1.7976931348623159e+308"]; // -Infinity
5, số được trả về từ parseFloat[]
có thể không chính xác bằng số được biểu thị bằng chuỗi, do phạm vi dấu phẩy động và độ không chính xác. Đối với các số nằm ngoài phạm vi parseFloat["Infinity"]; // Infinity
parseFloat["-Infinity"]; // -Infinity
6 – parseFloat["Infinity"]; // Infinity
parseFloat["-Infinity"]; // -Infinity
7 [xem parseFloat["Infinity"]; // Infinity
parseFloat["-Infinity"]; // -Infinity
8], thì trả về parseFloat["NaN"]; // NaN
8 hoặc parseFloat["NaN"]; // NaN
7Tất cả các ví dụ sau đều trả về
parseFloat[900719925474099267n]; // 900719925474099300
parseFloat["900719925474099267n"]; // 900719925474099300
1parseFloat[3.14];
parseFloat["3.14"];
parseFloat[" 3.14 "];
parseFloat["314e-2"];
parseFloat["0.0314E+2"];
parseFloat["3.14some non-digit characters"];
parseFloat[{
toString[] {
return "3.14";
},
}];
Ví dụ sau trả về
parseFloat[3.14];
parseFloat["3.14"];
parseFloat[" 3.14 "];
parseFloat["314e-2"];
parseFloat["0.0314E+2"];
parseFloat["3.14some non-digit characters"];
parseFloat[{
toString[] {
return "3.14";
},
}];
1parseFloat["FF2"];
Thông thường, bởi vì bản thân chuỗi
parseFloat[3.14];
parseFloat["3.14"];
parseFloat[" 3.14 "];
parseFloat["314e-2"];
parseFloat["0.0314E+2"];
parseFloat["3.14some non-digit characters"];
parseFloat[{
toString[] {
return "3.14";
},
}];
1 là cú pháp không hợp lệ như được chấp nhận bởi parseFloat[]
, việc chuyển parseFloat[900719925474099267n]; // 900719925474099300
parseFloat["900719925474099267n"]; // 900719925474099300
5 cũng trả về parseFloat[3.14];
parseFloat["3.14"];
parseFloat[" 3.14 "];
parseFloat["314e-2"];
parseFloat["0.0314E+2"];
parseFloat["3.14some non-digit characters"];
parseFloat[{
toString[] {
return "3.14";
},
}];
1parseFloat["NaN"]; // NaN
Các giá trị vô cực được trả về khi số nằm ngoài phạm vi định dạng IEEE 754-2019 64 bit có độ chính xác kép
parseFloat["1.7976931348623159e+308"]; // Infinity
parseFloat["-1.7976931348623159e+308"]; // -Infinity
Vô cực cũng được trả về khi chuỗi bắt đầu bằng
parseFloat["FF2"];
7 hoặc parseFloat["1.7976931348623159e+308"]; // Infinity
parseFloat["-1.7976931348623159e+308"]; // -Infinity
0parseFloat["Infinity"]; // Infinity
parseFloat["-Infinity"]; // -Infinity
parseFloat[]
không xử lý các giá trị
BigInt["900719925474099267"];
// 900719925474099267n
0. Nó dừng ở ký tự BigInt["900719925474099267"];
// 900719925474099267n
1 và coi chuỗi trước đó là một số nguyên bình thường, có thể mất độ chính xác. Nếu một giá trị BigInt được chuyển đến parseFloat[]
, nó sẽ được chuyển đổi thành một chuỗi và chuỗi sẽ được phân tích cú pháp dưới dạng số dấu phẩy động, điều này cũng có thể dẫn đến mất độ chính xácparseFloat[900719925474099267n]; // 900719925474099300
parseFloat["900719925474099267n"]; // 900719925474099300
Thay vào đó, bạn nên chuyển chuỗi tới hàm
BigInt["900719925474099267"];
// 900719925474099267n
3 mà không có ký tự BigInt["900719925474099267"];
// 900719925474099267n
1 ở cuối