>
>Object(3) // => new Number(3)
Обратите внимание, что все значения, кроме >null
или >undefined
, имеют метод >toString()
, результатом которого обычно является то же значение, которое возвращается функцией >String()
. Кроме того, обратите внимание, что в табл. 3.2 отмечается, что при попытке преобразовать значение >null
или >undefined
в объект возбуждается ошибка >ТуреЕrror
. Функция >Object()
в этом случае не возбуждает исключение, вместо этого она просто возвращает новый пустой объект.
Определенные операторы в языке JavaScript неявно выполняют преобразования и иногда могут использоваться для преобразования типов. Если один из операндов оператора >+
является строкой, то другой операнд также преобразуется в строку. Унарный оператор >+
преобразует свой операнд в число. А унарный оператор >!
преобразует операнд в логическое значение и инвертирует его. Все это стало причиной появления следующих своеобразных способов преобразования типов, которые можно встретить на практике:
>x + "" // То же, что и String(х)
>+x // То же, что и Number(x). Можно также встретить x-0
>!!x //То же, что и Boolean(x). Обратите внимание на два знака !
Форматирование и парсинг чисел являются наиболее типичными задачами, решаемыми компьютерными программами, и потому в JavaScript имеются специализированные функции и методы, обеспечивающие более полный контроль над преобразованиями чисел в строки и строк в числа.
Метод >toString()
класса >Number
принимает необязательный аргумент, определяющий основание системы счисления для преобразования. Если этот аргумент не определен, преобразование выполняется в десятичной системе счисления. Но вы можете производить преобразование в любой системе счисления (с основанием от 2 до 36). Например:
>var n = 17;
>binary_string = n.toString(2); // Вернет "10001"
>octal_string = "0" + n.toString(8); // Вернет "021"
>hex_string = "Ox" + n.toString(16); // Вернет "0x11"
При выполнении финансовых или научных расчетов может потребоваться обеспечить преобразование чисел в строки с точностью до определенного числа десятичных знаков или до определенного количества значащих разрядов или получать представление чисел в экспоненциальной форме. Для подобных преобразований чисел в строки класс >Number
определяет три метода. Метод >toFixed()
преобразует число в строку, позволяя указывать количество десятичных цифр после запятой. Он никогда не возвращает строки с экспоненциальным представлением чисел. Метод >toExponential()
преобразует число в строку в экспоненциальном представлении, когда перед запятой находится единственный знак, а после запятой следует указанное количество цифр (т. е. количество значащих цифр в строке получается на одну больше, чем было указано при вызове метода). Метод