No Image

Как перевести строку в число javascript

СОДЕРЖАНИЕ
924 просмотров
10 марта 2020

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

Сравнение типов данных в JavaScript

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

Существует два основных способа сравнения между двумя структурами / элементами данных: два знака равенства (==) или три знака равенства (===).

При использовании двух знаков равенства переменные сравниваются только по их содержанию. В этом примере будет использоваться троичный оператор, который является предпочтительным.

С другой стороны, при использовании трех знаков равенства переменные сравниваются по содержанию и типу данных:

Преобразование числа в строку

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

  • .toString()
  • String()
  • Шаблон строки
  • Конкатенация пустой строки

.toString()

Метод .toString(), который принадлежит объекту Number.prototype, принимает целое число или число с плавающей запятой и преобразует его в тип String.

Есть несколько способов вызова этого метода. Если число (основание) передается в качестве параметра методу .toString(), число будет проанализировано и преобразовано в это базовое число:

String()

Метод String() создает примитивный тип String для переданного ему числа:

Основное отличие здесь состоит в том, что объект String не выполняет никаких базовых преобразований, как Number.toString().

Шаблон строки

С введением шаблонных строк в ES6 введение числа внутри String является допустимым способом парсинга типа данных Integer или Float:

Конкатенация пустой строки

Наконец, что не менее важно, есть отличный способ создать строку из числа. Возможно, это один из наиболее ориентированных на производительность способов, хотя некоторая читаемость нарушена:

Читайте также:  Iphone не включается горит itunes

В зависимости от браузера, на котором работает этот код, это может быть самый быстрый способ преобразования числа в строку. Но также имейте в виду, что этот метод не всегда возвращает желаемую строку. Например:

Заключение

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

Функции parseFloat() и parseInt()

В JavaScript существуют 2 встроенные функции для преобразования строк в числа: parseFloat() и parseInt() .

parseFloat() принимает аргументом строку, которую необходимо привести к численному типу, и возвращает число типа float. Число должно содержаться в начале строки. Если после числа в строке идут ещё какие-то символы, то они отсекаются. Дробная часть числа должна быть записана через точку (запятая не воспринимается как разделитель). В случае, если parseFloat() не может преобразовать строку, то она возвращает NaN.

Также функция может обработать «число n, умноженное на 10 в степени x», которое в программировании принято записывать через букву E, например: 0.5E6 или 0.5E+6. Степень может быть также отрицательная: 0.5E-6, что равно 0.5*10^-6 или 0.5/1000000.

Функция parseInt(string[, radix]) принимает в качестве первого аргумента строку, анализирует её и возвращает целое число (тип integer). Функция пытается анализировать систему счисления, в которой записано число в исходной строке (например, десятичная, восьмеричная или шестнадцатеричная — но не только эти). Также систему счисления можно указать явно, передав её вторым параметром radix. Параметр radix может принимать любое число от 2 до 36 (в системах выше 10-й используются буквы английского алфавита, от A до Z).

Числа типа 1.5e6 функция не обрабатывает так, как parseFloat() .

Ознакомьтесь, пожалуйста, с примерами ниже, чтобы не наколоться на подводные камни, запрятаны в работе функции parseInt() .

Читайте также:  Прямая ссылка на файл яндекс диск

Если Вы обрабатываете данные из текстового поля, которые вводит пользователь, всегда используйте parseInt() вместе со вторым параметром radix, это обезопасит Ваш код от неожиданных результатов.

Можете испробовать работу этих функций в примере ниже:

Материал на этой странице устарел, поэтому скрыт из оглавления сайта.

Более новая информация по этой теме находится на странице https://learn.javascript.ru/type-conversions.

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

Всего есть три преобразования:

  1. Строковое преобразование.
  2. Численное преобразование.
  3. Преобразование к логическому значению.

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

Строковое преобразование

Строковое преобразование происходит, когда требуется представление чего-либо в виде строки. Например, его производит функция alert .

Можно также осуществить преобразование явным вызовом String(val) :

Как видно из примеров выше, преобразование происходит наиболее очевидным способом, «как есть»: false становится "false" , null – "null" , undefined – "undefined" и т.п.

Также для явного преобразования применяется оператор "+" , у которого один из аргументов строка. В этом случае он приводит к строке и другой аргумент, например:

Численное преобразование

Численное преобразование происходит в математических функциях и выражениях, а также при сравнении данных различных типов (кроме сравнений === , !== ).

Для преобразования к числу в явном виде можно вызвать Number(val) , либо, что короче, поставить перед выражением унарный плюс "+" :

Значение Преобразуется в.
undefined NaN
null
true / false 1 / 0
Строка Пробельные символы по краям обрезаются.
Далее, если остаётся пустая строка, то 0 , иначе из непустой строки "считывается" число, при ошибке результат NaN .

Сравнение разных типов – значит численное преобразование:

При этом строка "
0" преобразуется к числу, как указано выше: начальные и конечные пробелы обрезаются, получается строка "0" , которая равна 0 .

Читайте также:  Измеритель rlc своими руками

С логическими значениями:

Здесь сравнение "==" снова приводит обе части к числу. В первой строке слева и справа получается 0 , во второй 1 .

Специальные значения

Посмотрим на поведение специальных значений более внимательно.

Интуитивно, значения null/undefined ассоциируются с нулём, но при преобразованиях ведут себя иначе.

Специальные значения преобразуются к числу так:

Значение Преобразуется в.
undefined NaN
null

Это преобразование осуществляется при арифметических операциях и сравнениях > >= , но не при проверке равенства == . Алгоритм проверки равенства для этих значений в спецификации прописан отдельно (пункт 11.9.3). В нём считается, что null и undefined равны "==" между собой, но эти значения не равны никакому другому значению.

Это ведёт к забавным последствиям.

Например, null не подчиняется законам математики – он «больше либо равен нулю»: null>=0 , но не больше и не равен:

Значение undefined вообще «несравнимо»:

Для более очевидной работы кода и во избежание ошибок лучше не давать специальным значениям участвовать в сравнениях > >= .

Используйте в таких случаях переменные-числа или приводите к числу явно.

Логическое преобразование

Преобразование к true/false происходит в логическом контексте, таком как if(value) , и при применении логических операторов.

Все значения, которые интуитивно «пусты», становятся false . Их несколько: 0 , пустая строка, null , undefined и NaN .

Остальное, в том числе и любые объекты – true .

Полная таблица преобразований:

Значение Преобразуется в.
undefined , null false
Числа Все true , кроме 0 , NaN — false .
Строки Все true , кроме пустой строки "" — false
Объекты Всегда true

Для явного преобразования используется двойное логическое отрицание !!value или вызов Boolean(value) .

В отличие от многих языков программирования (например PHP), "0" в JavaScript является true , как и строка из пробелов:

Комментировать
924 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock
detector