Необходимость проверить, является ли строка числом, а затем преобразовать ее в число, часто возникает при кодировании на JavaScript. Если вы решили более 5 задач по leetcode, то вы знаете, о чем я говорю! 😅
Это также очень полезно при кодировании приложений. Классический пример — приложение-калькулятор, где вы принимаете значения от пользователей в виде строк, и вам нужно проверить, являются ли эти значения действительными числами (или операторами).
Как проверить, является ли строка числом?
Существует метод JavaScript с забавным названием isNaN(str)
. Что переводится как «не является числом». Он возвращает true, если str
не является числом, и false, если является.
Если мы используем !isNaN(str)
, мы получим true, если str
является числом…..
!isNaN('👾123') // => false
!isNaN('😺') // => false
!isNaN('456') // => true
// works for floats too
!isNaN('-2.5') // => true
Отлично, теперь как преобразовать строку в число?
Существует 4 способа преобразования строки в число (если это число).
ПРЕДУПРЕЖДЕНИЕ: Если строка НЕ является числом, НЕ пытайтесь преобразовать ее в число, потому что вы получите либо NaN
обратно, либо иногда 0
, если вы преобразуете пустую строку или пробел в число. Удачи в поиске ошибки в вашем коде! ** 🤬
*Поэтому ВСЕГДА проверяйте, является ли это числом, используя !isNaN(str)
ПЕРВЫМ. *
Понятно? Круто! Давайте напечатаем convert:
// for integers
+'456' // => 456
parseInt('456') // => 456
Number('456') // => 456
// for floating point numbers
+'-2.600' // => -2.6
parseFloat('-2.600') // => -2.6
Number('-2.600') // => -2.6
Обратите внимание, что parseInt(...)
работает ТОЛЬКО для целых чисел, если вы передадите ему число с плавающей точкой, он отрежет все, что находится после .
, поэтому parseInt('-2.6')
станет -2
.
Как удалить нули из числа с плавающей запятой в конце (и в начале)
Обратите внимание, что я добавил несколько нулей в конце -2.6
Я сделал это, чтобы проиллюстрировать кое-что интересное: *при преобразовании типа строки в число с плавающей запятой все ненужные нули с плавающей запятой, которые идут после и перед, будут удалены. *
Это очень полезно.
Например:
+'-000002.600' // => -2.6
Связанный трюк: если у вас есть число с большим количеством нулей в конце, от которых вы хотите избавиться, просто преобразуйте его в строку, а затем обратно в число с помощью +
:
const annoyingNumber = 1.230000000000;
const cleanNumber = +annoyingNumber.toString();
console.log(cleanNumber); // => 1.23
😎
Мой любимый вариант преобразования из строки в число в JavaScript?
Мой любимый вариант — оператор +
. Он состоит всего из одного символа, это должно понравиться! 😻
А какой у вас любимый?
Если вам понравилась эта статья, пожалуйста, загляните в мой блог
Indepth JavaScript для более познавательного контента. 🤓