Junior
Как се преобразува низ в число в JavaScript?
sobes.tech AI
Отговор от AI
Преобразуването на низ в число в JavaScript може да се извърши по няколко начина:
-
Непряк типово преобразуване:
- Математически оператори: например унарният плюс
+или изваждането-.
// Непряко преобразуване с унарен плюс let str = "123"; let num = +str; // num = 123 (число)- Математически операции: при използване на математически оператори JavaScript ще се опита да преобразува операндите към числа.
// Непряко преобразуване с изваждане let str1 = "10"; let str2 = "5"; let result = str1 - str2; // result = 5 (число) - Математически оператори: например унарният плюс
-
Явно типово преобразуване:
parseInt(string, radix): Преобразува низ в цяло число. Вторият аргументradix(база на системата) се препоръчва да се посочи, за да се избегне неочаквано поведение.
// Явно преобразуване с parseInt let strInt = "42px"; let numInt = parseInt(strInt, 10); // numInt = 42 (цяло число) let strBinary = "101"; let numBinary = parseInt(strBinary, 2); // numBinary = 5 (цяло число)parseFloat(string): Преобразува низ в число с плаваща точка. Парсира низ до първия нечислови символ или точка.
// Явно преобразуване с parseFloat let strFloat = "3.14abc"; let numFloat = parseFloat(strFloat); // numFloat = 3.14 (число с плаваща точка)Number(value): Преобразува всяка стойност в число. По-строг е в сравнение сparseIntиparseFloat. Ако низът не може да бъде напълно преобразуван в число, връщаNaN.
// Преобразуване с Number let strNum = "123.45"; let numFromNumber = Number(strNum); // numFromNumber = 123.45 (число) let strInvalid = "hello"; let numInvalid = Number(strInvalid); // numInvalid = NaN
Различия и характеристики:
| Метод | Описание | Връща при невалиден низ | Парсира от началото до първия нечислови символ |
|---|---|---|---|
+string |
Непряко преобразуване с унарен +. | NaN |
Не (цялият низ) |
string - 0 |
Непряко преобразуване с изваждане. | NaN |
Не (цялият низ) |
parseInt() |
Парсира цяло число. | NaN |
Да |
parseFloat() |
Парсира число с плаваща точка. | NaN |
Да |
Number() |
Явно преобразуване. По-строго. | NaN |
Не (цялият низ) |
Изборът на метод зависи от конкретната задача и очаквания формат на входния низ. Number() е предпочитаният за преобразуване на низове, които представляват цели или дробни числа без допълнителни символи. parseInt() и parseFloat() са полезни за извличане на числови стойности от низове, съдържащи допълнителни символи (например, мерни единици). Непрякото преобразуване трябва да се използва с внимание, като се разбира неговото поведение.