Как преобразовать число в строку в JavaScript?

Лучшие проекты JavaScript для начинающих Программирование и разработка

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

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

Преобразование числа в строку с помощью интерполяции

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

Чтобы использовать интерполяцию, оберните строку обратными кавычками ( `). Затем в строку можно вставить любую переменную с помощью `${}`.

Например:

const number = 99;
console.log(`${number} percent of people love JavaScript`); // "99% of people love JavaScript"

Поскольку строка, которая регистрируется в консоли, заключена в обратные кавычки, вы можете вставить переменную в строку, используя ${}.

Вы можете увидеть пример в действии в следующей демонстрации CodePen.

const input = document.querySelector("#number");
const resultElm = document.querySelector("#result");

input.addEventListener('keyup', function (e) {
  resultElm.textContent = `${input.value} percent of people love JavaScript`
});

Преобразование числа в строку с помощью конкатенации строк

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

Например:

console.log(10 + "USD"); //"10USD"
console.log(10 + ""); //"10"
const number = 10;
document.getElementById("variableValue").textContent = number;
document.getElementById("originalType").textContent = typeof number;
const numberStr = number + '';
document.getElementById("afterConvertValue").textContent = numberStr;
document.getElementById("afterConvert").textContent = typeof numberStr;

Хотя этот подход эффективен (поскольку требует наименьшего количества кода), он может сделать код менее читаемым.

Предупреждение о конкатенации строк

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

Например:

const a = 2000;
const b = 468;
console.log(a + b + " motorway"); // "2468 motorway"

Так a + b как сначала оценивается перед достижением строки, операция представляет собой числовое сложение, а не конкатенацию строк. Как только достигается строковая переменная или литерал, операция становится конкатенацией строк. Итак, результат есть 2468 motorway.

Однако попробуйте изменить код на следующий:

const a = 2000;
const b = 468;
console.log("it is " + a + b + " motorway"); // "it is 2000468 motorway"

Поскольку «it is» + aвычисляется первым, +оператор используется для конкатенации строк для остальной части выражения. Таким образом, вместо операции сложения между aи b, как в предыдущем примере, это становится операцией конкатенации строк между ними.

Это можно решить с помощью скобок:

const a = 2000;
const b = 468;
console.log("it is " + (a + b) + " motorway"); // "it is 2468 motorway"

Сначала выполняется сложение между a и b, что приводит к операции сложения между двумя переменными. bЗатем для остальной части выражения используется конкатенация строк, поскольку первым операндом является «it is».

Преобразование числа в строку с помощью toString

Третий подход заключается в использовании toString()метода. Этот метод доступен для всех типов данных JavaScript, включая числа. Он преобразует значение числа, на котором он используется, и возвращает его.

Например:

const number = 10;
console.log(number); // 10
console.log(typeof number); // "number"

const numberStr = number.toString();
console.log(numberStr); // "10"
console.log(typeof numberStr); // "string"

Этот пример показывает тот же результат, что и первый подход. Вы также можете увидеть его в действии в следующей демонстрации CodePen.

const number = 10;
document.getElementById("variableValue").textContent = number;
document.getElementById("originalType").textContent = typeof number;
const numberStr = number.toString();
document.getElementById("afterConvertValue").textContent = numberStr;
document.getElementById("afterConvert").textContent = typeof numberStr;

Преобразование числа в строку с помощью строки

Четвертый подход заключается в использовании String()функции-конструктора. Эта функция принимает переменную для преобразования в качестве первого параметра. Он преобразует параметр в строку и возвращает его.

Например:

const number = 10;
console.log(number); // 10
console.log(typeof number); // "number"

const numberStr = String(number);
console.log(numberStr); // "10"
console.log(typeof numberStr); // "string"

При регистрации значения numberи его типа в консоли результат будет 10и numberсоответственно. После преобразования результат 10в виде строки и stringсоответственно.

Вы можете увидеть пример в действии в следующей демонстрации CodePen.

const number = 10;
document.getElementById("variableValue").textContent = number;
document.getElementById("originalType").textContent = typeof number;
const numberStr = String(number);
document.getElementById("afterConvertValue").textContent = numberStr;
document.getElementById("afterConvert").textContent = typeof numberStr;

Заключение

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

Основное различие между использованием String()и toString()заключается в том, что оно String()работает со значениями undefinedи, а не работает. Итак, если у вас есть значение, которое должно содержать число, но вы хотите быть в безопасности при преобразовании его в строку, вы можете использовать.nulltoString()String()

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

Читайте также:  HTML или CSS: в чем разница между ними?
Оцените статью
bestprogrammer.ru
Добавить комментарий