Junior
Jak w JavaScript zamienia się ciąg na liczbę?
sobes.tech AI
Odpowiedź od AI
W JavaScript konwersję ciągu na liczbę można wykonać na kilka sposobów:
-
Domyślne konwersje typów:
- Operatory matematyczne: na przykład unary plus
+lub odejmowanie-.
// Domyślna konwersja za pomocą unary plus let str = "123"; let num = +str; // num = 123 (liczba)- Operacje arytmetyczne: przy użyciu operatorów arytmetycznych JavaScript spróbuje przekonwertować operandy na liczby.
// Domyślna konwersja przy odejmowaniu let str1 = "10"; let str2 = "5"; let result = str1 - str2; // result = 5 (liczba) - Operatory matematyczne: na przykład unary plus
-
Jawne konwersje typów:
parseInt(string, radix): Konwertuje ciąg na liczbę całkowitą. Zaleca się podanie drugiego argumenturadix(podstawa systemu liczbowego), aby uniknąć nieoczekiwanych zachowań.
// Konwersja za pomocą parseInt let strInt = "42px"; let numInt = parseInt(strInt, 10); // numInt = 42 (liczba całkowita) let strBinary = "101"; let numBinary = parseInt(strBinary, 2); // numBinary = 5 (liczba całkowita)parseFloat(string): Konwertuje ciąg na liczbę zmiennoprzecinkową. Parsuje ciąg do pierwszego nie-liczbowego znaku lub kropki.
// Konwersja za pomocą parseFloat let strFloat = "3.14abc"; let numFloat = parseFloat(strFloat); // numFloat = 3.14 (liczba zmiennoprzecinkowa)Number(value): Konwertuje dowolną wartość na liczbę. Jest to bardziej rygorystyczne podejście w porównaniu doparseIntiparseFloat. Jeśli ciąg nie może zostać w pełni przekonwertowany na liczbę, zwracaNaN.
// Konwersja za pomocą Number let strNum = "123.45"; let numFromNumber = Number(strNum); // numFromNumber = 123.45 (liczba) let strInvalid = "hello"; let numInvalid = Number(strInvalid); // numInvalid = NaN
Różnice i cechy:
| Metoda | Opis | Zwraca NaN dla nieprawidłowego ciągu | Analizuje od początku do pierwszego nie-liczbowego znaku |
|---|---|---|---|
+string |
Domyślna konwersja z unarnym plus. | NaN |
Nie (cały ciąg) |
string - 0 |
Domyślna konwersja przy odejmowaniu. | NaN |
Nie (cały ciąg) |
parseInt() |
Analiza liczby całkowitej. | NaN |
Tak |
parseFloat() |
Analiza liczby zmiennoprzecinkowej. | NaN |
Tak |
Number() |
Jawna konwersja. Bardziej rygorystyczna. | NaN |
Nie (cały ciąg) |
Wybór metody zależy od konkretnego zadania i oczekiwanego formatu wejściowego ciągu. Number() jest preferowany do konwersji ciągów reprezentujących liczby całkowite lub dziesiętne bez dodatkowych znaków. parseInt() i parseFloat() są przydatne do wyodrębniania wartości liczbowych z ciągów zawierających dodatkowe symbole (np. jednostki miary). Konwersje domyślne należy stosować ostrożnie, rozumiejąc ich zachowanie.