Как уже было сказано в заголовке этой заметки. Мы рассмотрим несколько методов, которые можно использовать для преобразования строк в числа и избежать ловушки в аду методов.
parseInt( ) vs parseFloat( )
Прежде всего, говоря о приведении строк, мы не можем не упомянуть эти очень известные методы.
Итак, для тех, кто новичок в javascript, скажу, что эти методы используются для преобразования строки в целое число «parseInt( )» или плавающее число «parseFloat( )» соответственно.
Но и с тем, и с другим есть небольшая проблема: вы должны с самого начала знать, с каким типом числа вы хотите работать, потому что разбор неправильного числа может привести к множеству ошибок, которые могут нанести вред вашему бизнесу.
const stringNumber = "45.1"
// output -> 45 (is not a string anymore)
const int = parseInt(stringNumber)
// output -> 45.1 (is not a string anymore, and it is float)
const float = parseFloat(stringNumber)
Number( )
Это непосредственно экземпляр класса Number в javascript.
Number( ) является одним из наиболее рекомендуемых способов разбора строк в числа, поскольку он достаточно разборчив для использования в крупных кодовых базах, а его функциональность можно понять по названию — он также автоматически форматирует строку в Integer или Float.
const stringIntegerNumber = "45"
const stringFloatNumber = "45.1"
// output -> 45 (is not a string anymore)
const int = Number(stringIntegerNumber)
// output -> 45.1 (is not a string anymore, and it is float)
const float = Number(stringFloatNumber)
Унарный оператор (+)
Пожалуй, в этой подборке методов преобразования строки в число. Это, безусловно, самый странный метод, поскольку на самом деле это не метод или класс JavaScript, а специальный оператор.
Как и Number( ), унарный оператор выполняет те же функции, но имеет лучшую производительность, если люди, с которыми вы работаете, никогда не читали документацию по JavaScript, этот способ может быть недостаточно разборчивым.
const stringIntegerNumber = "45"
const stringFloatNumber = "45.1"
// output -> 45 (is not a string anymore)
const int = +stringIntegerNumber
// output -> 45.1 (is not a string anymore, and it is float)
const float = +stringFloatNumber
Если вы не понимаете, что происходит, позвольте сказать, что этот метод работает путем добавления оператора «+» непосредственно перед строкой с числовым значением (если есть пробелы между «+» считается классическим оператором суммы).
Если у вас есть другие методы, не стесняйтесь их комментировать.