Конвертация числа в строку javascript

JavaScript: преобразование значений в строку или число

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

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

Если мы хотим что-либо представить в виде строки, речь идёт о строковом преобразовании.

К примеру, значение к строке преобразует alert(value) . Также для преобразования в строку подходит функция String(value) :

 
let value = true; alert(typeof value); // boolean value = String(value); // теперь value — это строка "true" alert(typeof value); // string

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

Преобразование в число в JavaScript

Преобразование в число (численное преобразование) осуществляется в математических функциях и выражениях. Допустим, когда операция деления (/) применяется не к числу:

 
alert( "6" / "2" ); // 3, Строки преобразовываются в числа

Кроме того, можно задействовать функцию Number(value) — это позволит явно преобразовать value к числу:

 
let str = "123"; alert(typeof str); // string let num = Number(str); // станет числом 123 alert(typeof num); // number

Также применяется явноe преобразование в число. Это актуально, если мы ожидаем получить, допустим, число из строкового контекста (к примеру, из текстовых полей форм).

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

 
let age = Number("Любая строка вместо числа"); alert(age); // NaN, преобразование не получилось

Существуют правила преобразования в число:

1-20219-a49f75.png

А теперь приведём примеры:

 
alert( Number(" 123 ") ); // 123 alert( Number("123z") ); // NaN (ошибка чтения числа в "z") alert( Number(true) ); // 1 alert( Number(false) ); // 0

Обратите внимание, что undefined и null и ведут себя по-разному. Если null становится нулём, то undefined приводится к NaN.

Кроме того, нужно учесть, что сложение (+) объединяет строки. Как известно, практически все математические операторы выполняют преобразование в число. Исключением является + . Если одно из слагаемых будет строкой, все остальные тоже приведутся к строкам.

Речь идёт о конкатенации (присоединении) друг к другу:

 
alert( 1 + '2' ); // '12' (строка справа) alert( '1' + 2 ); // '12' (строка слева)

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

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

Кроме преобразования в число и строку, в JavaScript существует и логическое преобразование. Это преобразование в JavaScript является наиболее простым и происходит в логических операторах. Вдобавок к этому, может выполняться посредством функции Boolean(value) .

Правила логического преобразования: — интуитивно «пустые» значения (типа пустой строки, 0, undefined, null и NaN) становятся false; — все прочие значения становятся true.

 
alert( Boolean(1) ); // true alert( Boolean(0) ); // false alert( Boolean("Здравствуйте!") ); // true alert( Boolean("") ); // false

Ещё один нюанс

Следует заметить, что строка с нулём "0" — это true. Некоторые языки программирования (тот же PHP) воспринимают строку "0" в качестве false. Однако в JavaScript всё иначе, и если строка не является пустой, она всегда true.

 
alert( Boolean("0") ); // true alert( Boolean(" ") ); // пробел — это тоже true (любая непустая строка является true)

Делаем выводы

Итак, в JavaScript есть три самых популярных преобразований: в строку, в число и логическое преобразование. Вспомним основные моменты статьи для наилучшего усвоения материала: 1.Преобразование в строку — происходит, если нужно что-то вывести. Вызывается посредством String(value) . Работает очевидным образом (для примитивных значений).
2.Преобразование в число — происходит в математических операциях. Вызывается посредством Number(value) . Подчиняется правилам:

1-20219-a49f75.png

3.Логическое преобразование — происходит в логических операторах. Вызывается Boolean(value) , подчиняется правилам:

2-20219-0fa36e.png

В целом правила несложны и запоминаются довольно легко. Тем не менее начинающие разработчики на JavaScript могут допускать следующие ошибки: — undefined при численном преобразовании становится не 0 , а NaN; — при логическом преобразовании "0" и строки из одних пробелов типа " " всегда являются true.

Источник

Number.prototype.toString()

The toString() method returns a string representing the specified number value.

Try it

Syntax

Parameters

An integer in the range 2 through 36 specifying the base to use for representing the number value. Defaults to 10.

Return value

A string representing the specified number value.

Exceptions

Thrown if radix is less than 2 or greater than 36.

Description

The Number object overrides the toString method of Object ; it does not inherit Object.prototype.toString() . For Number values, the toString method returns a string representation of the value in the specified radix.

For radixes above 10, the letters of the alphabet indicate digits greater than 9. For example, for hexadecimal numbers (base 16) a through f are used.

If the specified number value is negative, the sign is preserved. This is the case even if the radix is 2; the string returned is the positive binary representation of the number value preceded by a - sign, not the two's complement of the number value.

Both 0 and -0 have "0" as their string representation. Infinity returns "Infinity" and NaN returns "NaN" .

If the number is not a whole number, the decimal point . is used to separate the decimal places. Scientific notation is used if the radix is 10 and the number's magnitude (ignoring sign) is greater than or equal to 10 21 or less than 10 -6 . In this case, the returned string always explicitly specifies the sign of the exponent.

.log((10 ** 21.5).toString()); // "3.1622776601683794e+21" console.log((10 ** 21.5).toString(8)); // "526665530627250154000000" 

The toString() method requires its this value to be a Number primitive or wrapper object. It throws a TypeError for other this values without attempting to coerce them to number values.

Because Number doesn't have a [@@toPrimitive]() method, JavaScript calls the toString() method automatically when a Number object is used in a context expecting a string, such as in a template literal. However, Number primitive values do not consult the toString() method to be coerced to strings — rather, they are directly converted using the same algorithm as the initial toString() implementation.

Number.prototype.toString = () => "Overridden"; console.log(`$1>`); // "1" console.log(`$new Number(1)>`); // "Overridden" 

Examples

Using toString()

const count = 10; console.log(count.toString()); // "10" console.log((17).toString()); // "17" console.log((17.2).toString()); // "17.2" const x = 6; console.log(x.toString(2)); // "110" console.log((254).toString(16)); // "fe" console.log((-10).toString(2)); // "-1010" console.log((-0xff).toString(2)); // "-11111111" 

Converting radix of number strings

If you have a string representing a number in a non-decimal radix, you can use parseInt() and toString() to convert it to a different radix.

const hex = "CAFEBABE"; const bin = parseInt(hex, 16).toString(2); // "11001010111111101011101010111110" 

Beware of loss of precision: if the original number string is too large (larger than Number.MAX_SAFE_INTEGER , for example), you should use a BigInt instead. However, the BigInt constructor only has support for strings representing number literals (i.e. strings starting with 0b , 0o , 0x ). In case your original radix is not one of binary, octal, decimal, or hexadecimal, you may need to hand-write your radix converter, or use a library.

Specifications

Browser compatibility

BCD tables only load in the browser

See also

Found a content problem with this page?

This page was last modified on Feb 21, 2023 by MDN contributors.

Your blueprint for a better internet.

Источник

Преобразование типов

Чаще всего операторы и функции автоматически приводят переданные им значения к нужному типу.

Например, alert автоматически преобразует любое значение к строке. Математические операторы преобразуют значения к числам.

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

В этой главе мы не касаемся объектов. Сначала мы разберём преобразование примитивных значений.

Мы разберём преобразование объектов позже, в главе Преобразование объектов в примитивы.

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

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

Например, alert(value) преобразует значение к строке.

Также мы можем использовать функцию String(value) , чтобы преобразовать значение к строке:

let value = true; alert(typeof value); // boolean value = String(value); // теперь value это строка "true" alert(typeof value); // string

Преобразование происходит очевидным образом. false становится "false" , null становится "null" и т.п.

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

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

Например, когда операция деления / применяется не к числу:

alert( "6" / "2" ); // 3, строки преобразуются в числа

Мы можем использовать функцию Number(value) , чтобы явно преобразовать value к числу:

let str = "123"; alert(typeof str); // string let num = Number(str); // становится числом 123 alert(typeof num); // number

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

Если строка не может быть явно приведена к числу, то результатом преобразования будет NaN . Например:

let age = Number("Любая строка вместо числа"); alert(age); // NaN, преобразование не удалось

Правила численного преобразования:

Значение Преобразуется в…
undefined NaN
null 0
true / false 1 / 0
string Пробельные символы (пробелы, знаки табуляции \t , знаки новой строки \n и т. п.) по краям обрезаются. Далее, если остаётся пустая строка, то получаем 0 , иначе из непустой строки «считывается» число. При ошибке результат NaN .
alert( Number(" 123 ") ); // 123 alert( Number("123z") ); // NaN (ошибка чтения числа на месте символа "z") alert( Number(true) ); // 1 alert( Number(false) ); // 0

Учтите, что null и undefined ведут себя по-разному. Так, null становится нулём, тогда как undefined приводится к NaN .

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

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

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

Происходит в логических операциях (позже мы познакомимся с условными проверками и подобными конструкциями), но также может быть выполнено явно с помощью функции Boolean(value) .

  • Значения, которые интуитивно «пустые», вроде 0 , пустой строки, null , undefined и NaN , становятся false .
  • Все остальные значения становятся true .
alert( Boolean(1) ); // true alert( Boolean(0) ); // false alert( Boolean("Привет!") ); // true alert( Boolean("") ); // false

Некоторые языки (к примеру, PHP) воспринимают строку "0" как false . Но в JavaScript, если строка не пустая, то она всегда true .

alert( Boolean("0") ); // true alert( Boolean(" ") ); // пробел это тоже true (любая непустая строка это true)

Итого

Существует 3 наиболее широко используемых преобразования: строковое, численное и логическое.

Строковое – Происходит, когда нам нужно что-то вывести. Может быть вызвано с помощью String(value) . Для примитивных значений работает очевидным образом.

Численное – Происходит в математических операциях. Может быть вызвано с помощью Number(value) .

Преобразование подчиняется правилам:

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

Логическое – Происходит в логических операциях. Может быть вызвано с помощью Boolean(value) .

Значение Становится…
0 , null , undefined , NaN , "" false
любое другое значение true

Большую часть из этих правил легко понять и запомнить. Особые случаи, в которых часто допускаются ошибки:

  • undefined при численном преобразовании становится NaN , не 0 .
  • "0" и строки из одних пробелов типа " " при логическом преобразовании всегда true .

В этой главе мы не говорили об объектах. Мы вернёмся к ним позже, в главе Преобразование объектов в примитивы, посвящённой только объектам, сразу после того, как узнаем больше про основы JavaScript.

Источник

Читайте также:  Sql count примеры php
Оцените статью