JavaScript. Подробное руководство, 6-е издание, стр. 443

Несмотря на то что метод

<b>toString()</b>
обычно вызывается системой автоматически, бывают случаи, когда его требуется вызвать явно. Например, чтобы выполнить явное преобразование объекта в строку, если JavaScript не делает это автоматически:

<b>у = Math.sqrt(x); // Вычислить число</b>

<b>ystr = у.toString(); // Преобразовать его в строку</b>

Относительно этого примера следует помнить, что числа имеют встроенный метод

<b>toString(),</b>
обеспечивающий принудительное преобразование.

В других случаях вызов

<b>toString()</b>
может оказаться полезным - даже в таком контексте, когда JavaScript выполняет преобразование автоматически. Явное использование метода
<b>toString()</b>
может сделать программный код более понятным:

<b>alert(my_obj. toString());</b>

См. также

Object.constructor), Object.toLocaleString(), Object.valueOf()

Object.valueOf()

элементарное значение указанного объекта

Синтаксис

<b>объект.valueOf()</b>

Возвращаемое значение

Элементарное значение, связанное с объектом, если оно есть. Если с объектом не связано значение, метод возвращает сам объект.

Описание

Метод

<b>valueOf()</b>
объекта возвращает элементарное значение, связанное с этим объектом, если оно есть. Для объектов типа
<b>Object</b>
элементарное значение отсутствует, и метод такого объекта возвращает сам объект.

Однако для объектов типа

<b>Number</b>
метод
<b>valueOf()</b>
возвращает элементарное числовое значение, представляемое объектом. Аналогично он возвращает элементарное логическое значение, связанное с объектом
<b>Boolean</b>
, или строку, связанную с объектом
<b>String</b>
.

Программисту редко приходится явно вызывать метод

<b>valueOf().</b>
Интерпретатор JavaScript делает это автоматически всякий раз, когда встречает объект там, где ожидается элементарное значение. Из-за автоматического вызова метода
<b>valueOf()</b>
фактически трудно даже провести различие между элементарными значениями и соответствующими им объектами. Оператор
<b>typeof</b>
, например, показывает различие между строками и объектами
<b>String</b>
, но с практической точки зрения они работают в JavaScript-коде эквивалентным образом.

Метод

<b>valueOf()</b>
объектов
<b>Number, Boolean</b>
и
<b>String</b>
преобразует эти объекты-обертки в представляемые ими элементарные значения. Конструктор
<b>Object()</b>
выполняет противоположную операцию при вызове с числовым, логическим или строковым аргументом: он «заворачивает» элементарное значение в соответствующий объект-обертку. В большинстве случаев JavaScript берет это преобразование «элементарное значение - объект» на себя, поэтому необходимость в таком вызове конструктора
<b>Object()</b>
возникает редко.

Иногда программисту требуется определить специальный метод

<b>valueOf()</b>
для собственных объектов. Например, определить объектный JavaScript-тип для представления комплексных чисел (вещественное число плюс мнимое число). Как часть этого объектного типа, можно определить методы для выполнения комплексного сложения, умножения и т.д. Еще может потребоваться возможность рассматривать комплексные числа как обычные вещественные путем отбрасывания мнимой части. Для этого можно сделать примерно следующее:

<b>Complex.prototype.valueOf = new Function(&quot;return this.real&quot;);</b>

Определив метод valueOf() для собственного объектного типа Complex, можно, например, передавать объекты комплексных чисел в функцию Math.sqrt(), которая вычислит квадратный корень из вещественной части комплексного числа.

См. также

Object. toString()

parseFloat()

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

Синтаксис

<b>parseFloat(s)</b>

Аргументы

s Строка для синтаксического разбора, которая должна быть преобразована в число.

Возвращаемое значение

Возвращает выделенное из строки число или NaN, если s не начинается с допустимого числа. В JavaScript 1.0, если строка s не может быть преобразована в число,

<b>parseFloat()</b>
возвращает 0 вместо NaN.

Описание

Функция

<b>parseFloat()</b>
выполняет синтаксический разбор строки и возвращает первое число, найденное в s. Разбор прекращается и значение возвращается, когда
<b>parseFloat()</b>
встречает в s символ, который не является допустимой частью числа. Если s не начинается с числа, которое
<b>parseFloat()</b>
может разобрать, функция возвращает значение NaN. Проверка на это возвращаемое значение выполняется функцией
<b>isNaN().</b>
Чтобы выделить только целую часть числа, используется функция
<b>parseInt(),</b>
а не
<b>parseFloat().</b>

См. также

isNaN(), parseInt()

parseInt()

преобразует строку в целое число

Синтаксис

<b>parseInt(s)</b>

<b>parseInt(s, основание)</b>

Аргументы

s

Строка для синтаксического разбора.

основание

Необязательный целочисленный аргумент, представляющий основание системы счисления анализируемого числа. Если этот аргумент отсутствует или равен 0, извлекается десятичное или шестнадцатеричное (если число начинается с префикса «0х» или «0Х») число. Если этот аргумент меньше 2 или больше 36,

<b>parseInt()</b>
возвращает NaN.

Возвращаемое значение