Стандартные объекты и функции
В ядре JavaScript определены объекты и функции, которые можно использовать вне контекста загруженной страницы.
Объект Array
В JavaScript нет типа данных массив, но с помощью объекта Array можно создавать массивы в приложениях и манипулировать ими. Методы этого объекта позволяют сортировать, объединять, записывать в обратном порядке содержимое массивов и выполнять многие другие действия.
Массив создается оператором new и конструктором массива — системной функцией Array, инициализирующей элементы массива. Создать массив можно одной из следующих конструкций:
/* обычный синтаксис */
var array = [ elem0, elem1, elem2,... ]
var empty = []
/* Синтаксис с new Array() */
var array = new Array(elem0, elem1, elem2,...)
var empty = new Array()
/* Редкий синтаксис: аргумент new Array - одно число.
При этом создается массив заданной длины,
все значения в котором undefined */
var array = new Array(10)
Для получения значения элемента массива необходимо в квадратных скобках рядом с именем массива указать порядковый номер элемента.
а[0] = "1"; а[1]=2;
с = b[2]*c[3];
В JavaScript нумерация элементов массивов начинается с нуля. Пример создания массива:
arrayl = new Array ("Первый", "Второй", "Третий");
Для задания массивов нескольких размерностей следует значениям элементов массивов присваивать массивы.
а = new Array ()
for (i=0; i < 4; i++) {
a[i] = new Array ()
for (j=0; j < 4; j++) {
a[i] [j] = "["+i+","+j+"]"
}
}
Здесь в первом операторе определяется массив а. Далее в цикле элементы этого одномерного массива сами определяются как массивы, элементам которых присваиваются значения. Таким образом создается двумерный массив.
Свойства объекта Array
Свойство | Описание |
index | Псевдо-свойство массива, созданного в результате сравнения на соответствие регулярному выражению. Для такого массива данное свойство содержит индекс найденного соответствия в исследуемой строке. |
input | Псевдо-свойство массива, созданного в результате сравнения на соответствие регулярному выражению. Для такого массива данное свойство содержит строку, над которой производили сравнение. |
length | Длина массива: число, на единицу превосходящее максимальный индекс массива |
Методы объекта Array
Метод | Действие |
concat | Объединяет массивы в один: array.concat(value1, value2,..., valueN) value1, value2,... - массивы или значения для присоединения |
join | Соединяет все элементы массива в одну строку: arrayObj.join([glue]) Glue - строковый аргумент, с помощью которого будут соединены в строку все элементы массива. Если аргумент не задан, элементы будут соединены запятыми |
pop | Удаляет последний элемент из массива и возвращает его значение |
push | Добавляет один или несколько элементов в конец массива и возвращает новую длину массива |
reverse | Переставляет элементы массива в обратном порядке: первый элемент становится последним, а последний первым. Возвращает ссылку на измененный массив |
shift | Удаляет первый элемент массива и возвращает его значение |
slice | Создает сечение массива в виде нового массива: arrayObj.slice(start[, end]) Start - индекс элемента в массиве, с которого будет начинаться новый. End - необязательный параметр. Индекс элемента в массиве, на котором новый массив завершится. При этом последним в новом массиве будет элемент с индексом end-1. Если start отрицателен, то он будет трактоваться как arrayObj.length+start (т.е. start'ый элемент с конца массива). Если end отрицателен, то он будет трактоваться как arrayObj.length+end (т.е. end'ый элемент с конца массива). Если второй параметр не указан, то экстракция продолжится до конца массива. Если end < start, то будет создан пустой массив. Данный метод не изменяет исходный массив, а просто возвращает его часть. |
splice | Добавляет и/или удаляет элементы из массива. arrayObj.splice(start, deleteCount, [elem1[, elem2[,...[, elemN]]]]). Start - индекс в массиве, с которого начинать удаление. deleteCount - кол-во элементов, которое требуется удалить, начиная с индекса start. IE: если этот параметр не указан, то ни одни элемент не будет удалён. Firefox: если этот параметр не указан, то будут удалены все элементы, начиная с индекса start. Opera: если этот параметр не указан, то будут удалён 1 элемент, имеющий индекс start+1. В этом же случае вместо удалённого элемента будет возвращена пустая строка. elem1, elem2,..., elemN - добавляемые элементы в массив. Добавление начинается с позиции start. |
sort | Сортирует элементы массива возвращает новый массив. Данный метод изменяет исходный массив. |
unshift | Добавляет один или более элементов в начало массива и возвращает новую длину |
Например: метод array1.concat(array2).sort() объединит два массива в один новый и отсортирует его.
Объект Date
Для представления дат в программе JavaScript используется объект Date. Он создается, как и любой объект в JavaScript, оператором new с помощью конструктора Date. Синтаксис оператора создания даты следующий:
имя объекта дата = new Date ([параметры]);
Если в конструкторе даты отсутствуют параметры, то значением объекта будет текущая дата. Параметром конструктора может быть строка Вида "месяц день, год часы:минуты:секунды". Ниже представлены три способа инициализации объекта Date:
today = new Date()
Xmas = new Date("January 7 1999 12:00:00")
Xmas = new Date(99, 1, 7)
Xmas = new Date(99, 1, 7, 12, 0, 0)
В общем виде:
dateObj = new Date(dateVal)
dateObj = new Date(year, month, date[, hours, minutes, seconds, ms])
Аргументы:
dateVal – если параметр является числовым, то он интерпретируется как количество миллисекунд от 1-Янв-1970 00:00. Если строкой, то она разбирается и интерпретируется как дата по стандартным правилам Date.parse.
year – год в формате YYYY
month – месяц от 0 (Янв) до 11 (Дек)
date – день месяца от 1 до 31
hours – параметр должен быть указан, если указан параметр minutes. Устанавливает кол-во часов от 0 до 23
minutes – параметр должен быть указан, если указан параметр seconds. Устанавливает количество минут: от 0 до 59
seconds – параметр должен быть указан, если указан параметр ms. Устанавливает количество секунд: от 0 до 59
ms – количество миллисекунд: от 0 до 999.
Дата измеряется в миллисекундах, начиная от полуночи 01 января 1970 года GMT+0. День содержит 86,400,000 миллисекунд.
Методами объекта Date можно получать и устанавливать отдельно значения года, месяца, дня недели, часов, минут и секунд. Например, метод getYear() возвращает год, метод setYear() устанавливает значение года объекта Date. Метод getTime () возвращает число миллисекунд, прошедшее с момента времени 1 января 1970 года 00:00:00, метод setTime() устанавливает соответствующее значение даты в миллисекундах, заданных в качестве параметра.
Методы объекта Date
Метод | Описание |
Date.parse | получает строку с датой (напр. "Jan 03, 2000") и возвращает целое число, представляющее собой количество миллисекунд, истекших с полуночи 1 января 1970 года |
toLocaleString | возвращает String-объект, содержащий дату в длинном формате по умолчанию |
getDate | Возвращает целое число от 1 до 31 |
getDay | возвращает целое число, обозначающее день недели: 0 - воскресенье, 1 - понедельник, 2 - вторник, и т.д. |
getFullYear | Возвращает полное значение года. Для дат от 1000 до 9999 года getFullYear возвращает четырёхзначное число |
getMilliseconds | Возвращает целое число от 0 до 999 |
getMinutes | Возвращает целое число от 0 до 59 |
getSeconds | Возвращает целое число от 0 до 59 |
getTimezoneOffset | Смещение часового пояса равняется разнице между универсальным (UTC) и местным временем в минутах |
getUTCDate | Возвращает целое число от 1 до 31 |
getUTCDay | возвращает целое число, обозначающее день недели: 0 - воскресенье, 1 - понедельник, 2 - вторник, и т.д. |
getUTCHours | Возвращает целое число от 0 до 23 |
getHours | Возвращает целое число от 0 до 23 |
getUTCMilliseconds | Возвращает целое число от 0 до 999 |
getUTCMinutes | Возвращает целое число от 0 до 59 |
getUTCSeconds | Возвращает целое число от 0 до 59 |
setSeconds | Устанавливает секунды от 0 до 59 |
setFullYear | setFullYear(yearValue[, monthValue[, dayValue]]) |
setMilliseconds | Устанавливает миллисекунды от 0 до 999 |
setTime | Устанавливает дату по количеству миллисекунд, прошедших с полуночи 1 января 1970 года по универсальному времени |
setYear | Устанавливает год по двузначному значению (не рекомендуется) |
setDate | Устанавливает день от 1 до 31 |
setUTCDate | Устанавливает день от 1 до 31 |
setUTCHours | setUTCHours(hoursValue[, minutesValue[, secondsValue[, msValue]]]) |
setHours | setHours(hoursValue[, minutesValue[, secondsValue[, msValue]]]) |
setUTCMilliseconds | Устанавливает миллисекунды от 0 до 999 |
setUTCMinutes | setUTCMinutes(minutesValue[, secondsValue[, msValue]]) |
setMinutes | setMinutes(minutesValue[, secondsValue[, msValue]]) |
setMonth | setMonth(monthValue[, dayValue]) |
setUTCSeconds | Устанавливает секунды от 0 до 59 |
setUTCFullYear | setUTCFullYear(yearValue[, monthValue[, dayValue]]) |
setUTCMonth | setUTCMonth(monthValue[, dayValue]) monthValue - значение от 0 до 11, обозначающее месяц от января до декабря; dayValue -значение от 1 до 31, обозначающее день месяца |
toGMTString | возвращает строку, содержащее текстовое представление даты и времени по Гринвичу на английском языке в американском формате (не рекомендуется) |
toLocaleFormat | Выводит дату на основании предложенного формата |
toLocaleTimeString | Выводит местное время |
toLocaleDateString | Выводит дату |
toString | всегда возвращает строку, представляющую дату на английском языке в американском формате |
toTimeString | Выводит время и часовой пояс |
toDateString | Выводит дату без времени |
toUTCString | возвращает строку на английском языке в американском формате, согласно универсальному часовому поясу (Гринвичу) |
getUTCFullYear | Возвращает полное значение года |
getMonth | Возвращает целое число от 0 до 11. 0 соответствует январю, 1 - февралю, и т.д. |
Date.UTC | Date.UTC(year, month, day[, hours[, minutes[, seconds[,ms]]]]) Year - год. Если он меньше 100, то к нему прибавляется 1900. Month - номер месяца в диапазоне от 0 до 11 (0 = январь, 1 = февраль,..., 11 = декабрь). Date - день месяца в диапазоне от 1 до 31. Hours - число от 0 до 23 (от полуночи до 23:00), представляющее час. Применяется, если указывается аргумент minutes. Minutes - число от 0 до 59, представляющее минуты. Применяется, если указывается аргумент seconds. Seconds - число от 0 до 59, представляющее секунды. Ms - число от 0 до 999, представляющее миллисекунды. Метод UTC возвращает количество миллисекунд, истекших с полуночи 1 января 1970 года и указанной датой, используя время в формате UTC. |
getUTCMonth | Возвращает целое число от 0 до 11. 0 соответствует январю, 1 - февралю, и т.д. |
getTime | возвращает число, равное количеству миллисекунд, прошедших с полуночи 1 января 1970 года GMT |
valueOf | функционально эквивалентен методу getTime. Этот метод является служебным и обычно не вызывается явно в коде. |
getYear | возвращает значение года минус 1900 (не рекомендован) |
Методы UTC работают для зоны GTC (по Гринвичу).
Объект Math
В свойствах объекта Math хранятся основные математические константы, а
его методы вычисляют основные математические функции. При обращении
к свойствам и методам этого объекта создавать его не надо, но следует явно
указывать его имя Math. Например, в свойстве PI хранится значение числа л
и использовать его в программе можно в виде Math.pi.
Методы этого объекта включают процедуры вычисления тригонометриче-
ских, экспоненциальных, логарифмических и других математических функ-
ций.
Свойства объекта Math
Свойство | Описание |
Math.E | Константа Эйлера, основание натурального логарифма. Приблизительно 2.718. |
Math.LN2 | Натуральный логарифм 2, приблизительно 0.693. |
Math.LOG2E | Логарифм E по основанию 2, приблизительно 1.442 |
Math.LOG10E | Логарифм E по основанию 10, приблизительно 0.434 |
Math.PI | Отношение длины окружности к ее диаметру, приблизительно 3.14159. |
Math.SQRT12 | Квадратный корень из 1/2; иначе говоря, 1 поделить на корень из 2, приблизительно 0.707. |
Math.SQRT2 | Квадратный корень из 2, приблизительно 1.414. |
Math.LN10 | Натуральный логарифм 10, приблизительно 2.302. |
Методы объекта Math
Метод | Описание |
abs | Абсолютное значение |
sin, cos, tan | Стандартные тригонометрические функции; аргумент задается в радианах |
acos, asin, atan | Обратные тригонометрические функции |
exp, log | Экспоненциальная функция и функция натурального логарифма |
ceil | Наименьшее целое, большее или равное значению аргумента |
floor | Наибольшее целое, меньшее или равное значению аргумента |
min, max | Наибольшее или наименьшее значение двух аргументов |
pow | Показательная функция: pow (x, у) =ху |
round | Округление аргумента до ближайшего целого |
sqrt | Квадратный корень |
Объект String
Когда переменной присваивается строковый литерал, она становится, как указывалось выше в разделе "Переменные и литералы", строковой переменной. На самом деле JavaScript не поддерживает строковых типов, а создает стандартный объект string. Таким образом, любая строковая переменная или строковый литерал является объектом string, к которому могут быть применены соответствующие методы этого объекта. Можно явно создать строковый объект, используя ключевое слово new и конструктор string, как показано ниже:
имя_объекта = new String(строка);
Параметром конструктора является любая допустимая строка. Например:
myString = new String("Строка");
Объект string имеет единственное свойство length, хранящее длину строки, содержащейся в строковом объекте. Так, и "строка". length, и myString.length возвращают одинаковые значения 6, равные в первом случае длине строкового литерала, а во втором случае длине строки, содержащейся в строковом объекте.
Объект string имеет два типа методов: первые непосредственно влияют на саму строку, например метод substring, а вторые возвращают отформатированный HTML вариант строки, например метод bold. Некоторым методам необходимы параметры. Так, метод получения подстроки требует задания двух целых чисел, определяющих позиции начала и конца ПОДСТРОКИ, например substring (2, 7). Методы, возвращающие HTML-отформатированные варианты строк, соответствуют тэгам форматирования HTML. Например, следующий оператор вставляет в страницу HTML связь с ресурсом, расположенным по адресу, задаваемому параметром метода link:
document.write(s.link("https://www.bhv.com"));
В документе отобразится содержимое строкового объекта s, представленное как связь с соответствующим ресурсом.
Методы объекта string
Метод | Действие |
anchor | Создает именованную ссылку |
big, blink, bold, fixed, italics, small, strike, sub, sup | Создает строку в формате HTML |
charAt, charCodeAt | Возвращает символ или код символа, параметр определяет позицию символа в строке от 0 до length-1 |
indexOf, lastlndexOf | Возвращает позицию в строке заданной подстроки: str.lastIndexOf(searchValue[, fromIndex]). indexOf – ищет сначала. lastlndexOf – ищет с конца строки. |
link | Создает гиперсвязь |
concat | Конкатенация строк: result = string1.concat(string2, string3[,..., stringN]) |
split | Преобразует строковый объект в массив строк, разбивая строку на подстроки: var arr = str.split([separator][, limit]); Separator – разделитель, limit – максимальное число добавляемых элементов массива |
slice | var sub = string.slice(beginSlice[, endSlice]) beginSlice - позиция, начиная от 0, с которой начинается участок endSlice - позиция, на которой заканчивается участок Метод slice возвращает часть строки от beginSlice до endSlice, но не включая символ под номером endSlice, не меняя вызывающую строку. |
substring, substr | Возвращают подмножество строки, заданное либо началом и концом, либо началом и числом символов |
match, replace, search | Используются для работы с регулярными выражениями |
toLowerCase, toUpperCase | Переводят содержимое строк в верхний или в нижний регистр соответственно |
String.fromCharCode | String.fromCharCode(num1,..., numN) num1,..., numN последовательность кодов Unicode-символов. Этот метод возвращает элементарную строку, а не объект типа String. |
Стандартные функции верхнего уровня
В добавление к стандартным объектам существует несколько функций, для вызова которых не надо создавать никакого объекта. Они находятся вне иерархии объектов JavaScript на так называемом "верхнем уровне".
Полезными при разработке приложений могут оказаться две функции, производящие "синтаксический" анализ своих аргументов: parseFloat и parseInt. Функция parseFloat (параметр) анализирует значение переданного ей строкового параметра на соответствие представлению вещественного числа в JavaScript. Если в строке при последовательном просмотре обнаруживается символ, отличный от символов, применяемых для формирования вещественных литералов (знаки + и -, десятичные цифры, точка и символы (е) или (Е)), то она игнорирует оставшуюся часть строки и возвращает то числовое значение, которое ею обнаружено до неправильного символа. Если первый символ в строке не является цифрой, она возвращает значение "NaN" (Not a Number — не число).
Аналогично функция parseint(строка, [основание]) пытается возвратить целое число по заданному вторым параметром основанию. Если первый символ в строке не является цифрой, она также возвращает значение "NaN". Эти функции полезны при анализе введенных пользователем данных в полях формы до передачи их на сервер.
Функции Number (объект) и string (объект) преобразуют объект, заданный в качестве его параметра в число или строку.
Функция isNaN(параметр) тестирует значение своего параметра на соответствие нечисловому значению. Если ее параметр действительно оказывается не числом, она возвращает true, в противном случае — false.