Исходный тип |
Результат |
Undefined |
"undefined" |
Null |
"null" |
Boolean |
"true", если аргумент равен true, и "false", если аргумент равен false |
Number |
текстовое представление числа (см. ниже) |
String |
без изменений |
Object |
результат преобразования значения объекта по умолчанию |
Преобразование числа
n в строку происходит по следующим правилам:
- если n равно NaN, то результат "NaN";
- если n равно +0 или -0, то результат "0";
- если n отрицательно, то результат будет конкатенацией строки "-" и результата преобразования в строку числа -n;
- если n равно бесконечности, то результат "Infinity";
- в остальных случаях пусть m, k и s — такие целые числа, что k >= 1, 10k-1 <= s < 10k, n равно s x 10m-k и k — наименьшее из возможных. Отметим, что k — это количество цифр в десятичном представлении s, что s не делится на 10 и что наименее значимая цифра s может не быть однозначно определенной. Тогда
- если k <= m <= 21, то результат состоит из k десятичных цифр s (без ведущих нулей), за которыми следуют m-k символов '0';
- иначе, если 0 < m <= 21, то результат состоит из m старших десятичных цифр s, за которыми следуют десятичная точка '.' и k-m оставшихся десятичных цифр s;
- иначе, если -6 < m <= 0, то результат состоит из символа '0', за которым следуют десятичная точка '.', -m символов '0' и k десятичных цифр s;
- иначе, если k = 1, то результат состоит из единственной цифры s, символа 'e', символа плюс '+' или минус '-' в зависимости от того, положительно или отрицательно m-1, за которыми следует десятичное представление числа abs(m-1);
- иначе результат состоит из старшей десятичной цифры s, за которой следуют десятичная точка '.' и k-1 оставшихся десятичных цифр s, символ 'e', символ плюс '+' или минус '-' в зависимости от того, положительно или отрицательно m-1, за которыми следует десятичное представление числа abs(m-1).