Несмотря на то что метод
<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("return this.real");</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.
Возвращаемое значение