Рубрики
Без рубрики

JavaScript преобразуйте строку на номер

Автор оригинала: Lucas Otero.

Вступление

Управление данными является одним из фундаментальных концепций программирования. Преобразование номера в строку – это обычная и простая операция. То же самое касается другого пути, преобразуя строку на номер.

Преобразование строки на номер

Как и в случае с предыдущими методами, JavaScript также предоставляет функции, чтобы легко преобразовать строку в примитивный номер. Это Parсент () , Parsefloat () , Math.floor () , Math.Ceil () , Унарный оператор/умножение на 1 Отказ

  • .aryent () берет строку в качестве первого аргумента и основание, на которую будет преобразована эта строка. Этот метод всегда возвращает целое число.
  • .aryfloat () берет строку в качестве аргумента и возвращает эквивалент номер точки поплавка.
  • Math.floor () используется для круглая целочисленного или плавающего номера точки. Возвращает ближайшее целое число закругленным.
  • Math.Ceil () Может использоваться для круглая целочисленного или плавающего номера.
  • Унарный оператор Добавляя + Знак перед строкой, она будет преобразована в число, если следует правильному формату.
  • Умножьте на 1 Если строка умножается на примитивное число 1 Строка станет числом.

.aryseint ()

База может быть определена путем добавления префиксов к числам, которые мы хотим проанализировать:

  • Нет префикса – Если нет префикса, радикс 10 (десятичный).
  • 0 – Если префикс есть 0 Затем радикс 8 (восьмеричный). Хотя эта особенность устарена.
  • 0x – Если префикс есть 0x Затем радикс составляет 16 (шестнадцатеричный).

Хотя мы можем просто добавить дополнительный аргумент на вызов метода, определяя базу:

let str = '353';
let fltStr = '353.56';
let binStr = '7';
let nanStr = 'hello';

parseInt(str);       // 353
parseInt(fltStr);    // 353
parseInt(binStr, 2); // 111 (Binary)
parseInt(nanStr);    // NaN (Not a Number)

.aryfloat ()

let str = '100';
let fltStr = '100.21';
let nanStr = 'bye';

parseFloat(str);    // 353
parseFloat(fltStr); // 353.21
parseFloat(nanStr); // NaN

Math.floor ()

Удивительно, что этот метод также может принять строки, что делает его способом преобразовать строку в целое число.

let str = '100';
let fltStr = '99.89';
let nanStr = 'bye';

Math.floor(str);    // 100
Math.floor(fltStr); // 99
Math.floor(nanStr); // NaN

Math.Ceil ()

Однако очень похоже на предыдущий метод, на этот раз он возвращает ближайший целочисленный округлый вверх Отказ

Способ может принимать строки, а также сделать его способ преобразовать строку на номер:

let str = '100';
let fltStr = '100.21';
let nanStr = 'bye';

Math.ceil(str);    // 100
Math.ceil(fltStr); // 101
Math.ceil(nanStr); // NaN

Имейте в виду, что если вам нужно проанализировать поплавки, то оба Math.floor и Math.Ceil Вероятно, не являются хорошими вариантами, поскольку они всегда будут преобразовывать строки в ближайший целочисленный эквивалент.

Унарный оператор

Как при объединении пустой строки, существует также обходной путь, который имеет лучшую производительность, но не хватает читаемости.

let str = '100';
let fltStr = '100.21';
let nanStr = 'greetings';

+str    // 100
+fltStr // 100.21
+nanStr // NaN
+'1000' // 1000
+10.25  // 10.25

Несмотря на краткое и эффективное, это не очень известная особенность JavaScript, поэтому она не рекомендуется использовать, поскольку он может заставить ваш код не так просто понять.

Умножение на 1

Этот подход, возможно, самый быстрый:

let str = '100';
let fltStr = '100.21';
let nanStr = 'greetings';

str * 1;      // 100
fltStr * 1;   // 100.21
nanStr * 1;   // NaN
'2000' * 1;   // 2000
'102.15' * 1; // 102.15

Предыдущие два подхода работают просто из-за того, что JavaScript пытается ассимилировать типы данных, используемые в операторе, таком как дополнение или умножение.

Использование строки и номера объектов

Другой способ преобразования строки на номер или номер для строки создает новый объект строки или номера с Новый ключевое слово.

// Number to String
let numToStr = new String(2);   // String {'2'}

// String to Number
let strToNum = new Number('2'); // Number {2}

Эта практика, однако, обескуражен Отказ При использовании примитивных данных методы объекта не должны использоваться для их создания. Суммарирование примитивного типа данных со струной или номером классовой обертки приносит производительность и проблемы с памятью.

Заключение

Есть много действительных способов манипулирования данными. Это зависит от программиста, чтобы решить, какой из них они предпочитают, выбирая производительность над читаемостью или балансом между двумя.

Для получения дополнительной информации вы можете прочитать следующие ресурсы: