Документация по JavaScript
Примитивные встроенные объекты часть 1
Примитивные встроенные объекты часть 1
Глава 8. Примитивные встроенные объекты
JavaScript содержит глобальный объект, который является средой его исполняющей системы, а также следующие встроенные объекты:
| Объект | Описание | Объект | Описание |
|---|---|---|---|
| Array | Массивы | Math | Математические функции и константы |
| Boolean | Логические объекты | Number | Числовые объекты |
| Date | Дата и время | Object | Прототип остальных объектов |
| Error | Исключения | RegExp | Регулярные выражения |
| Function | Функции | String | Строковые объекты |
В этой главе приведены описания глобального объекта и примитивных встроенных объектов Object, Function, Boolean и Number. Описания остальных встроенных объектов расположены в следующих главах.
8.1. Глобальный объект
Глобальный объект (Global) создается исполняющей системой JavaScript перед началом исполнения сценария. Это единственный объект, который не имеет имени, и потому доступ к его свойствам и методам осуществляется без имени объекта. По этой причине их иногда называют свойствами и методами верхнего уровня.
| Свойство | Описание |
|---|---|
| Infinity | Специальное значение "бесконечность". |
| NaN | Специальное значение "не число". |
| undefined | Неопределенное значение. |
| Метод | Описание |
|---|---|
| Boolean | Преобразует объект в логическое значение. |
| decodeURI | Декодирует URI. |
| decodeURIComponent | Декодирует компонент URI. |
| encodeURI | Кодирует URI. |
| encodeURIComponent | Кодирует компонент URI. |
| escape | Преобразует строку в шестнадцатеричную кодировку Unicode. |
| eval | Исполняет строку кода JavaScript. |
| isFinite | Возвращает true, если аргумент является конечным числом. |
| isNaN | Возвращает true, если аргумент равен NaN. |
| Number | Преобразует объект в число. |
| Object | Преобразует значение в объект. |
| parseFloat | Преобразует строку в плавающее число. |
| parseInt | Преобразует строку в целое число. |
| String | Преобразует объект в строку. |
| unescape | Преобразует шестнадцатеричную кодировку Unicode в строку. |
Свойство Infinity
Синтаксис: Infinity Атрибуты: { DontEnum, DontDelete }
Начальным значением свойства Infinity является значение Number.POSITIVE_INFINITY. Это значение обозначает положительную бесконечность и больше любого числа, включая его само. В частности, результат умножения любого числа на Infinity равен Infinity, а результат деления любого числа на Infinity равен 0. Равенство результата арифметической операции этому значению указывает на переполнение.
Свойство NaN
Синтаксис: NaN Атрибуты: { DontEnum, DontDelete }
Начальным значением свойства NaN является значение Number.NaN (Not a Number, "не число"). Это значение не совпадает ни с одним числом, включая себя, поэтому мы не можем проверить правильность числа, сравнивая его с NaN. Вместо этого нужно использовать методы isFinite и isNaN.
Некоторые методы JavaScript возвращают NaN, если их аргумент не является числом. Рекомендуется использовать это свойство в своих функциях точно так же.
Свойство undefined
Синтаксис: undefined Атрибуты: { DontEnum, DontDelete }
Начальным значением свойства undefined является значение undefined (неопределенное значение). Оно означает, что переменной не было присвоено никакого значения.
Метод Boolean
Синтаксис: Boolean(объект) Аргументы: объект любое выражение Результат: логическое значение
Метод Boolean преобразует аргумент в логическое значение по правилам, приведенным в п. 3.2.1.
Метод decodeURI
Синтаксис: decodeURI(строка) Аргументы: строка строковое выражение, содержащее кодированный URI Результат: новый строковый объект
Метод decodeURI выполняетстандартную декодировку URI, закодированного методом encodeURI.
Метод decodeURIComponent
Синтаксис: decodeURIComponent(строка) Аргументы: строка строковое выражение, содержащее кодированный компонент URI Результат: новый строковый объект
Метод decodeURIComponent выполняет стандартную декодировку отдельного компонента URI, закодированного методом encodeURIComponent.
Метод encodeURI
Синтаксис: encodeURI(строка) Аргументы: строка строковое выражение, содержащее URI Результат: новый строковый объект
Метод encodeURI выполняет стандартную кодировку URI. При этом он не кодирует символы ":", "/", ";" и "?", считая их стандартными разделителями URI. Для кодировки этих символов следует пользоваться методом encodeURIComponent.
Например, оператор document.write(encodeURI("http://www.test.com?val=привет"))
выведет на экран обозревателя строку http://www.test.com?val=%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82.
Обратная декодировка URI производится методом decodeURI.
Метод encodeURIComponent
Синтаксис: encodeURIComponent(строка) Аргументы: строка строковое выражение, содержащее компонент URI Результат: новый строковый объект
Метод encodeURIComponent выполняет стандартную кодировку отдельного компонента URI. При этом кодируются все символы, не принадлежащие к базовой латинице.
Этим методом не следует пользоваться для кодировки полного URI. Например, оператор document.write(encodeURIComponent("http://www.test.com?val=привет"))
выведет на экран обозревателя строку
http%3A%2F%2Fwww.test.com%3Fval%3D%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82.
Обратная декодировка компонента URI производится методом decodeURIComponent.
Метод escape
Синтаксис: escape(строка) Аргументы: строка любое строковое выражение Результат: новый строковый объект
Метод escape преобразует входную строку в шестнадцатеричную кодировку Unicode.
При этом все символы, не являющиеся символами базовой латиницы, заменяются на их шестнадцатеричные
escape-коды %xx. Если код символа больше 255, то он заменяется на
%uxxxx. Например, оператор document.write(escape("Строка."))
выведет на экран обозревателя строку %u0421%u0442%u0440%u043E%u043A%u0430.
Примечания.
- Эта функция не должна использоваться для стандартной кодировки строк, содержащих URI. Вместо нее следует использовать методы encodeURI и encodeURIComponent.
- Обратное преобразование строки производится методом unescape.
Метод eval
Синтаксис: eval(строка) Аргументы: строка строковое выражение, содержащее программный код Результат: см. описание
Метод eval рассматривает входную строку как программный код JavaScirpt и исполняет его. Он позволяет динамически формировать операторы и выражения JavaScript для последующего выполнения.
Если аргументом метода eval является выражение, то он возвращает значение этого выражения, например:
var x = 10, y = 20;
var z = eval("x + y + 1"); // z равно 31
Если аргументом метода eval являются операторы, то он выполняет эти операторы и возвращает значение undefined, например:
var z = eval("var myDate = new Date();"); // создается новая переменная myDate
Метод eval исполняется в том же контексте (глобальном или локальном), в котором он вызван; этим же контекстом определяется область действия создаваемых их переменных. Операция this также возвращает указатель на тот объект, который был текущим в момент вызова данного метода.
Метод isFinite
Синтаксис: isFinite(число) Аргументы: число любое числовое выражение Результат: логическое значение
Метод isFinite возвращает true, если значением его аргумента является число, отличное от NaN, положительной бесконечности и отрицательной бесконечности. В противном случае он возвращает false.
Метод isNaN
Синтаксис: isNaN(выражение) Аргументы: выражение любое выражение Результат: логическое значение
Метод isNaN возвращает true, если значением его аргумента является NaN. В противном случае он возвращает false.
Альтернативным способом проверки значения переменной на равенство NaN является сравнение ее с самой собой, поскольку NaN это единственное значение, которое не равно самому себе.
Метод Number
Синтаксис: Number(объект) Аргументы: объект любое выражение Результат: числовое значение
Метод Number преобразует аргумент в числовое значение по правилам, приведенным в п. 3.2.2.
Метод Object
Синтаксис: Object(значение) Аргументы: значение любое выражение Результат: объектное значение
Метод Object преобразует аргумент в объектное значение по правилам, приведенным в п. 3.2.4.
Метод parseFloat
Синтаксис: parseFloat(строка) Аргументы: строка любое строковое выражение Результат: числовое значение
Метод parseFloat преобразует входную строку в плавающее число. Если аргумент не может быть преобразован в плавающее число, то возвращается значение NaN. Примеры:
parseFloat("314e-2") // возвращает 3.14
parseFloat("3.14abc") // возвращает 3.14
parseFloat("abc") // возвращает NaN
Метод parseInt
Синтаксис: parseInt(строка [,основание]?) Аргументы: строка любое строковое выражение основание - любое числовое выражение Результат: числовое значение
Метод parseInt преобразует входную строку в целое число. Необязательный аргумент основание задает основание системы счисления и должен иметь значение, больше или равное 2.
Если основание задано, то parseInt преобразует входную строку в число с данным основанием. При этом в системах счисления с основанием, большим 10, цифры, большие девяти, задаются латинскими буквами (A = 10, B = 11, , Z = 35). Формат чисел для оснований, больших 36, не определен.
Если основание не задано, то parseInt преобразует входную строку в число по следующим правилам:
- если строка начинается с 0x, то число считается шестнадцатеричным;
- если строка начинается с 0, то число считается восьмеричным;
- в остальных случаях число считается десятичным.
Если аргумент не может быть преобразован в целое число, то возвращается значение NaN. Примеры:
parseInt("0xF"); // возвращает 15
parseInt("017"); // возвращает 15
parseInt("08"); // возвращает 0
parseInt("15.99", 10); // возвращает 15
parseInt("FXX", 16); // возвращает 15
parseInt("1111", 2); // возвращает 15
parseInt("15*3"); // возвращает 15
parseInt("Hello", 8); // возвращает NaN
Метод String
Синтаксис: String(объект) Аргументы: объект любое выражение Результат: строковое значение
Метод String преобразует аргумент в строковое значение по правилам, приведенным в п. 3.3.2.3. Если аргументом является объект, то этот метод возвращает то же значение, что и метод toString данного объекта.
Метод unescape
Синтаксис: unescape(строка) Аргументы: строка любое строковое выражение Результат: новый строковый объект
Метод unescape преобразует строку в шестнадцатеричной кодировке Unicode в
текстовую. Формат исходной строки описан в методе escape.
Эта функция используется, в частности, для стандартной декодировки строк, содержащих URI.
Например, оператор document.write(unescape("%u0421%u0442%u0440%u043E%u043A%u0430."))
выведет на экран обозревателя текст Строка.
8.2. Объекты общего вида: объект Object
Объект Object это примитивный объектный тип, производными которого являются все остальные объекты языка JavaScript. Он имеет две формы конструктора:
new Object() new Object(значение)
Здесь значение любое выражение, задающее примитивное значение объекта. Если оно не указано, то создается пустой объект. Для создания пустого объекта можно также использовать инициализатор объекта:
{}
Примеры:
var a = new Object(); // пустой объект
var b = {}; // то же самое
var c = new Object(true); // примитивное значение объекта true
Объект Object содержится во всех объектах JavaScript, поэтому все его методы и свойства им доступны. Методы данного объекта могут быть переопределены в пользовательских объектах.
| Свойство | Описание | Член прототипа |
|---|---|---|
| constructor | Конструктор, который создал объект. | Да |
| prototype | Ссылка на прототип класса объектов. | Да |
| Метод | Описание | Член прототипа |
|---|---|---|
| hasOwnProperty | Проверяет наличие заданного свойства. | Да |
| isPrototypeOf | Проверяет, является ли объект прототипом данного объекта. | Да |
| propertyIsEnumerable | Проверяет наличие заданного итерируемого свойства. | Да |
| toLocaleString | Преобразует объект в строку с учетом формата операционной системы. | Да |
| toString | Преобразует объект в строку. | Да |
| valueOf | Возвращает примитивное значение объекта. | Да |
Свойство constructor
Синтаксис: объект.constructor Атрибуты: { DontEnum, DontDelete, ReadOnly }
Значением свойства constructor является функция, которая была конструктором данного объекта. Подчеркнем, что это не текстовая строка, содержащая имя функции, а именно функция (точнее, ссылка на нее). Примеры:
function Tobacco(name) {
this.name=name
}
theTobacco = new Tobacco("Camel")
if (theTobacco.constructor == Tobacco) ( ... }
document.write("theTobacco.constructor: " + theTobacco.constructor)
Последний оператор примера выведет на экран обозревателя текст:
theTobacco.constructor: function Tobacco(name) { this.name=name }
Свойство prototype
Синтаксис: объект.prototype Атрибуты: { DontEnum, DontDelete, ReadOnly }
Значением свойства prototype является ссылка на прототип данного объекта. Прототип используется для динамического добавления или удаления свойств и методов класса объектов. Подробности и примеры см. в п. 7.1.5.
Прототипы встроенных объектов имеют атрибут ReadOnly. В данном случае это означает, что изменять его набор свойств можно, но заменить прототип встроенного объекта нельзя. С другой стороны, прототипы пользовательских объектов допускают присваивание; тем самым мы задаем, какой объект является прототипом данного.
Метод hasOwnProperty
Синтаксис: объект.hasOwnProperty(имя) Аргумент: имя любое строковое выражение Результат: логическое значение
Метод hasOwnProperty возвращает true, если объект имеет свойство с данным именем, и false в противном случае. Этот метод не проверяет наличие свойства по цепочке прототипов; указанным свойством должен обладать именно сам объект. Пример:
var a = new Array();
var b1 = a.hasOwnProperty("join"); // false
var b2 = Array.prototype.hasOwnProperty("join"); // true
Метод isPrototypeOf
Синтаксис: объект.isPrototypeOf(имя) Аргумент: имя любое объектное выражение Результат: логическое значение
Метод isPrototypeOf возвращает true, если имя является объектом и объект содержится в цепочке его прототипов, и false в противном случае. Пример:
var a = new Array(); var b = Array.prototype.isPrototypeOf(a); // true
Метод propertyIsEnumerable
Синтаксис: объект.propertyIsEnumerable(имя) Аргумент: имя любое строковое выражение Результат: логическое значение
Метод propertyIsEnumerable возвращает true, если объект имеет свойство с данным именем и это свойство не имеет атрибута DontEnum, и false в противном случае. Этот метод не проверяет наличие свойства по цепочке прототипов; указанным свойством должен обладать именно сам объект.
Метод toLocaleString
Синтаксис: объект.toLocaleString() Результат: строковое значение
Метод toLocaleString преобразует объект в строковое значение, учитывая формат операционной системы. Результат зависит от объекта. По умолчанию возвращает строку "[object имя_объекта]", где имя_объекта это имя данного класса объектов, т. е. совпадает с методом toString.
Метод toString
Синтаксис: объект.toString() Результат: строковое значение
Метод toString преобразует объект в строковое значение. Результат зависит от объекта. По умолчанию возвращает строку "[object имя_объекта]", где имя_объекта это имя данного класса объектов.
Этот метод автоматически вызывается исполняющей системой JavaScript всякий раз, когда требуется неявное преобразование объекта в строку.
Метод valueOf
Синтаксис: объект.valueOf() Результат: зависит от объекта
Метод valueOf возвращает примитивное значение объекта. Результат зависит от объекта. По умолчанию возвращает строку "[object имя_объекта]", где имя_объекта это имя данного класса объектов.
Обычно этот метод вызывается исполняющей системой JavaScript неявно при выполнении автоматического преобразования типов.
Просмотров: 13833
Ваш коментарий будет первым |
![]() |
| Добавить коментарий |
| Реклама | |
|
HTML, Photoshop, JavaScript
Home Карта Сайта Документация по JavaScript Примеры по JavaScript Уроки по Photoshop Статьи по HTML DownloadsРеклама и Статистика


Ваш коментарий будет первым
