Sobes.tech
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() са полезни за извличане на числови стойности от низове, съдържащи допълнителни символи (например, мерни единици). Непрякото преобразуване трябва да се използва с внимание, като се разбира неговото поведение.