Вступление
Управление данными является одним из фундаментальных концепций программирования. Преобразование номера в строку – это обычная и простая операция. То же самое касается другого пути, преобразуя строку на номер.
Преобразование строки на номер
Как и в случае с предыдущими методами, 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}
Эта практика, однако, обескуражен Отказ При использовании примитивных данных методы объекта не должны использоваться для их создания. Суммарирование примитивного типа данных со струной или номером классовой обертки приносит производительность и проблемы с памятью.
Заключение
Есть много действительных способов манипулирования данными. Это зависит от программиста, чтобы решить, какой из них они предпочитают, выбирая производительность над читаемостью или балансом между двумя.
Для получения дополнительной информации вы можете прочитать следующие ресурсы: