Junior
Ako sa v JavaScriptu prevedie reťazec na číslo?
sobes.tech AI
Odpoveď od AI
Prevodom nahrávky reťazca na číslo v JavaScriptu je možné vykonať niekoľkými spôsobmi:
-
Nepriame prevody typu:
- Matematické operátory: napríklad unárny plus
+alebo odčítanie-.
// Nepriame prevody pomocou unárneho plusu let str = "123"; let num = +str; // num = 123 (číslo)- Matematické operácie: pri použití matematických operátorov sa JavaScript pokúsi previesť operandov na čísla.
// Nepriame prevody pomocou odčítania let str1 = "10"; let str2 = "5"; let result = str1 - str2; // result = 5 (číslo) - Matematické operátory: napríklad unárny plus
-
Priame prevody typu:
parseInt(string, radix): Prevod reťazca na celé číslo. Druhý argumentradix(základ sústavy) sa odporúča uvádzať, aby sa predišlo neočakávanému správaniu.
// Priamy prevod pomocou parseInt let strInt = "42px"; let numInt = parseInt(strInt, 10); // numInt = 42 (celé číslo) let strBinary = "101"; let numBinary = parseInt(strBinary, 2); // numBinary = 5 (celé číslo)parseFloat(string): Prevod reťazca na číslo s pohyblivou desatinnou čiarkou. Parsuje reťazec do prvého nečíselného znaku alebo bodky.
// Priamy prevod pomocou parseFloat let strFloat = "3.14abc"; let numFloat = parseFloat(strFloat); // numFloat = 3.14 (číslo s pohyblivou desatinnou čiarkou)Number(value): Prevod akéhokoľvek hodnoty na číslo. Je prísnejší akoparseIntaparseFloat. Ak reťazec nemôže byť úplne prevedený na číslo, vrátiNaN.
// Prevod pomocou Number let strNum = "123.45"; let numFromNumber = Number(strNum); // numFromNumber = 123.45 (číslo) let strInvalid = "hello"; let numInvalid = Number(strInvalid); // numInvalid = NaN
Rozdiely a vlastnosti:
| Metóda | Popis | Vráti pri neplatnom reťazci | Parsuje od začiatku do prvého nečíselného znaku |
|---|---|---|---|
+string |
Nepriame prevody pomocou unárneho +. | NaN |
Nie (celý reťazec) |
string - 0 |
Nepriame prevody pomocou odčítania. | NaN |
Nie (celý reťazec) |
parseInt() |
Parsuje celé číslo. | NaN |
Áno |
parseFloat() |
Parsuje číslo s pohyblivou desatinnou čiarkou. | NaN |
Áno |
Number() |
Priamy prevod. Prísnejší. | NaN |
Nie (celý reťazec) |
Výber metódy závisí od konkrétneho úlohy a očakávaného formátu vstupného reťazca. Number() je preferovaná pre prevod reťazcov, ktoré predstavujú celé alebo desatinné čísla bez ďalších znakov. parseInt() a parseFloat() sú užitočné na extrakciu číselných hodnôt z reťazcov obsahujúcich doplnkové znaky (napríklad jednotky merania). Nepriame prevody je potrebné používať opatrne, s pochopením jeho správania.